本文整理汇总了PHP中get_file_storage函数的典型用法代码示例。如果您正苦于以下问题:PHP get_file_storage函数的具体用法?PHP get_file_storage怎么用?PHP get_file_storage使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_file_storage函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: assignfeedback_editpdf_pluginfile
/**
* Serves assignment feedback and other files.
*
* @param mixed $course course or id of the course
* @param mixed $cm course module or id of the course module
* @param context $context
* @param string $filearea
* @param array $args
* @param bool $forcedownload
* @return bool false if file not found, does not return if found - just send the file
*/
function assignfeedback_editpdf_pluginfile($course, $cm, context $context, $filearea, $args, $forcedownload)
{
global $USER, $DB, $CFG;
if ($context->contextlevel == CONTEXT_MODULE) {
require_login($course, false, $cm);
$itemid = (int) array_shift($args);
if (!($assign = $DB->get_record('assign', array('id' => $cm->instance)))) {
return false;
}
$record = $DB->get_record('assign_grades', array('id' => $itemid), 'userid,assignment', MUST_EXIST);
$userid = $record->userid;
if ($assign->id != $record->assignment) {
return false;
}
// Check is users feedback or has grading permission.
if ($USER->id != $userid and !has_capability('mod/assign:grade', $context)) {
return false;
}
$relativepath = implode('/', $args);
$fullpath = "/{$context->id}/assignfeedback_editpdf/{$filearea}/{$itemid}/{$relativepath}";
$fs = get_file_storage();
if (!($file = $fs->get_file_by_hash(sha1($fullpath))) or $file->is_directory()) {
return false;
}
// Download MUST be forced - security!
send_stored_file($file, 0, 0, true);
// Check if we want to retrieve the stamps.
}
}
示例2: __construct
/**
* Constructs a file picker object.
*
* The following are possible options for the filepicker:
* - accepted_types (*)
* - return_types (FILE_INTERNAL)
* - env (filepicker)
* - client_id (uniqid)
* - itemid (0)
* - maxbytes (-1)
* - maxfiles (1)
* - buttonname (false)
*
* @param stdClass $options An object containing options for the file picker.
*/
public function __construct(stdClass $options)
{
global $CFG, $USER, $PAGE;
require_once $CFG->dirroot . '/repository/lib.php';
$defaults = array('accepted_types' => '*', 'return_types' => FILE_INTERNAL, 'env' => 'filepicker', 'client_id' => uniqid(), 'itemid' => 0, 'maxbytes' => -1, 'maxfiles' => 1, 'buttonname' => false);
foreach ($defaults as $key => $value) {
if (empty($options->{$key})) {
$options->{$key} = $value;
}
}
$options->currentfile = '';
if (!empty($options->itemid)) {
$fs = get_file_storage();
$usercontext = context_user::instance($USER->id);
if (empty($options->filename)) {
if ($files = $fs->get_area_files($usercontext->id, 'user', 'draft', $options->itemid, 'id DESC', false)) {
$file = reset($files);
}
} else {
$file = $fs->get_file($usercontext->id, 'user', 'draft', $options->itemid, $options->filepath, $options->filename);
}
if (!empty($file)) {
$options->currentfile = html_writer::link(moodle_url::make_draftfile_url($file->get_itemid(), $file->get_filepath(), $file->get_filename()), $file->get_filename());
}
}
// initilise options, getting files in root path
$this->options = initialise_filepicker($options);
// copying other options
foreach ($options as $name => $value) {
if (!isset($this->options->{$name})) {
$this->options->{$name} = $value;
}
}
}
示例3: block_xp_pluginfile
/**
* File serving.
*
* @param stdClass $course The course object.
* @param stdClass $bi Block instance record.
* @param context $context The context object.
* @param string $filearea The file area.
* @param array $args List of arguments.
* @param bool $forcedownload Whether or not to force the download of the file.
* @param array $options Array of options.
* @return void|false
*/
function block_xp_pluginfile($course, $bi, $context, $filearea, $args, $forcedownload, array $options = array())
{
global $CFG;
if ($CFG->block_xp_context == CONTEXT_SYSTEM && $context->contextlevel !== CONTEXT_SYSTEM) {
return false;
} else {
if ($CFG->block_xp_context != CONTEXT_SYSTEM && $context->contextlevel !== CONTEXT_COURSE) {
return false;
}
}
$fs = get_file_storage();
$file = null;
if ($filearea == 'badges') {
// For performance reason, and very low risk, we do not restrict the access to the level badges
// to the participant of the course, nor do we check if they have the required level, etc...
$itemid = array_shift($args);
$filename = array_shift($args);
$filepath = '/';
$file = $fs->get_file($context->id, 'block_xp', $filearea, $itemid, $filepath, $filename . '.png');
if (!$file) {
$file = $fs->get_file($context->id, 'block_xp', $filearea, $itemid, $filepath, $filename . '.jpg');
}
}
if (!$file) {
return false;
}
send_stored_file($file);
}
示例4: dataformview_tabular_pluginfile
/**
* Serves the dataformview_tabular template files.
*
* @param object $course
* @param object $cm
* @param object $context
* @param string $filearea
* @param array $args
* @param bool $forcedownload
* @return bool false if file not found, does not return if found - justsend the file
*/
function dataformview_tabular_pluginfile($course, $cm, $context, $filearea, $args, $forcedownload)
{
if (!in_array($filearea, dataformview_tabular_tabular::get_file_areas())) {
return false;
}
if ($context->contextlevel == CONTEXT_MODULE) {
require_course_login($course, true, $cm);
$viewid = (int) array_shift($args);
$dataformid = $cm->instance;
// Confirm user access.
$params = array('dataformid' => $dataformid, 'viewid' => $viewid);
if (!mod_dataform\access\view_access::validate($params)) {
return false;
}
$relativepath = implode('/', $args);
$fullpath = "/{$context->id}/dataformview_tabular/{$filearea}/{$viewid}/{$relativepath}";
$fs = get_file_storage();
if (!($file = $fs->get_file_by_hash(sha1($fullpath))) or $file->is_directory()) {
return false;
}
// Finally send the file.
send_stored_file($file, 0, 0, true);
// Download MUST be forced - security!
}
return false;
}
示例5: assignsubmission_onlinepoodll_pluginfile
/**
* Serves assignment submissions and other files.
*
* @param mixed $course course or id of the course
* @param mixed $cm course module or id of the course module
* @param context $context
* @param string $filearea
* @param array $args
* @param bool $forcedownload
* @return bool false if file not found, does not return if found - just send the file
*/
function assignsubmission_onlinepoodll_pluginfile($course, $cm, context $context, $filearea, $args, $forcedownload)
{
global $USER, $DB;
if ($context->contextlevel != CONTEXT_MODULE) {
return false;
}
require_login($course, false, $cm);
$itemid = (int) array_shift($args);
//back image is a special case
if (!($itemid == 0 && ($filearea = "onlinepoodll_backimage"))) {
$record = $DB->get_record('assign_submission', array('id' => $itemid), 'userid, assignment', MUST_EXIST);
$userid = $record->userid;
if (!($assign = $DB->get_record('assign', array('id' => $cm->instance)))) {
return false;
}
if ($assign->id != $record->assignment) {
return false;
}
// check is users submission or has grading permission
if ($USER->id != $userid and !has_capability('mod/assign:grade', $context)) {
return false;
}
}
$relativepath = implode('/', $args);
$fullpath = "/{$context->id}/assignsubmission_onlinepoodll/{$filearea}/{$itemid}/{$relativepath}";
$fs = get_file_storage();
if (!($file = $fs->get_file_by_hash(sha1($fullpath))) or $file->is_directory()) {
return false;
}
send_stored_file($file, 0, 0, true);
// download MUST be forced - security!
}
示例6: printFile
private function printFile($arg)
{
global $CFG;
$id = trim($arg);
if (strlen($id) == 40) {
//this is file hash
$hash = $id;
} else {
$fs = get_file_storage();
$file = $fs->get_file_by_id($id);
if (!$file) {
echo "File '{$id}' not found\n";
return;
}
$hash = $file->get_contenthash();
}
if (isset($CFG->filedir)) {
$filedir = $CFG->filedir;
} else {
$filedir = $CFG->dataroot . '/filedir';
}
$l1 = $hash[0] . $hash[1];
$l2 = $hash[2] . $hash[3];
if ($this->expandedOptions['relative']) {
echo "filedir/{$l1}/{$l2}/{$hash}\n";
} else {
echo "{$filedir}/{$l1}/{$l2}/{$hash}\n";
}
}
示例7: copyFromBlock
function copyFromBlock(GcrMdlBlockCourseProfile $parent_block, GcrMdlCourse $course)
{
$obj = $parent_block->getObject();
// If the instructor set on the parent block also has a teaching role
// on this course, copy that instructorid. Otherwise, set it to the
// default instructor of this course.
$instructorid = 0;
$courseid = $course->getObject()->id;
$course_context_id = $course->getContext()->id;
$instructor = $parent_block->getApp()->getUserById($obj->instructorid);
if ($instructor && $course->isInstructor($instructor)) {
$instructorid = $obj->instructorid;
} else {
$instructor = $course->getInstructor();
if ($instructor) {
$instructorid = $instructor->getObject()->id;
} else {
return false;
}
}
$fs = get_file_storage();
$existing_file = $fs->get_file($course_context_id, 'block_course_profile', 'courseicon', 0, '/', $courseid);
if ($existing_file) {
$existing_file->delete();
}
$file = $fs->get_file($parent_block->getContext()->id, 'block_course_profile', 'courseicon', 0, '/', $obj->courseid);
$file_record = array('contextid' => $course_context_id, 'component' => 'block_course_profile', 'filearea' => 'courseicon', 'itemid' => 0, 'filepath' => '/', 'filename' => $courseid, 'userid' => $instructorid);
$fs->create_file_from_storedfile($file_record, $file);
$data = array('courseid' => $courseid, 'instructorid' => $instructorid, 'courseicon' => $obj->courseicon);
$course->getApp()->upsertIntoMdlTable('block_course_profile', $data, array('courseid' => $courseid));
}
示例8: test_import_chapters_events
public function test_import_chapters_events()
{
$course = $this->getDataGenerator()->create_course();
$book = $this->getDataGenerator()->create_module('book', array('course' => $course->id));
$context = context_module::instance($book->cmid);
$record = new stdClass();
$record->contextid = $context->id;
$record->component = 'phpunit';
$record->filearea = 'test';
$record->itemid = 0;
$record->filepath = '/';
$record->filename = 'chapters.zip';
$fs = get_file_storage();
$file = $fs->create_file_from_pathname($record, __DIR__ . '/fixtures/chapters.zip');
// Importing the chapters.
$sink = $this->redirectEvents();
toolbook_importhtml_import_chapters($file, 2, $book, $context, false);
$events = $sink->get_events();
// Checking the results.
$this->assertCount(5, $events);
foreach ($events as $event) {
$this->assertInstanceOf('\\mod_book\\event\\chapter_created', $event);
$this->assertEquals($context, $event->get_context());
$chapter = $event->get_record_snapshot('book_chapters', $event->objectid);
$this->assertNotEmpty($chapter);
$this->assertEventContextNotUsed($event);
}
}
示例9: block_html_pluginfile
/**
* Form for editing HTML block instances.
*
* @copyright 2010 Petr Skoda (http://skodak.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package block_html
* @category files
* @param stdClass $course course object
* @param stdClass $birecord_or_cm block instance record
* @param stdClass $context context object
* @param string $filearea file area
* @param array $args extra arguments
* @param bool $forcedownload whether or not force download
* @param array $options additional options affecting the file serving
* @return bool
*/
function block_html_pluginfile($course, $birecord_or_cm, $context, $filearea, $args, $forcedownload, array $options = array())
{
global $SCRIPT;
if ($context->contextlevel != CONTEXT_BLOCK) {
send_file_not_found();
}
require_course_login($course);
if ($filearea !== 'content') {
send_file_not_found();
}
$fs = get_file_storage();
$filename = array_pop($args);
$filepath = $args ? '/' . implode('/', $args) . '/' : '/';
if (!($file = $fs->get_file($context->id, 'block_html', 'content', 0, $filepath, $filename)) or $file->is_directory()) {
send_file_not_found();
}
if ($parentcontext = get_context_instance_by_id($birecord_or_cm->parentcontextid)) {
if ($parentcontext->contextlevel == CONTEXT_USER) {
// force download on all personal pages including /my/
//because we do not have reliable way to find out from where this is used
$forcedownload = true;
}
} else {
// weird, there should be parent context, better force dowload then
$forcedownload = true;
}
session_get_instance()->write_close();
send_stored_file($file, 60 * 60, 0, $forcedownload, $options);
}
示例10: useredit_update_picture
/**
* Updates the provided users profile picture based upon the expected fields
* returned from the edit or edit_advanced forms.
*
* @global moodle_database $DB
* @param stdClass $usernew An object that contains some information about the user being updated
* @param moodleform $userform The form that was submitted to edit the form
* @return bool True if the user was updated, false if it stayed the same.
*/
function useredit_update_picture(stdClass $usernew, moodleform $userform) {
global $CFG, $DB;
require_once("$CFG->libdir/gdlib.php");
$context = get_context_instance(CONTEXT_USER, $usernew->id, MUST_EXIST);
// This will hold the value to set to the user's picture field at the end of
// this function
$picturetouse = null;
if (!empty($usernew->deletepicture)) {
// The user has chosen to delete the selected users picture
$fs = get_file_storage();
$fs->delete_area_files($context->id, 'user', 'icon'); // drop all areas
$picturetouse = 0;
} else if ($iconfile = $userform->save_temp_file('imagefile')) {
// There is a new image that has been uploaded
// Process the new image and set the user to make use of it.
// NOTE: This may be overridden by Gravatar
if (process_new_icon($context, 'user', 'icon', 0, $iconfile)) {
$picturetouse = 1;
}
// Delete the file that has now been processed
@unlink($iconfile);
}
// If we have a picture to set we can now do so. Note this will still be NULL
// unless the user has changed their picture or caused a change by selecting
// to delete their picture or use gravatar
if (!is_null($picturetouse)) {
$DB->set_field('user', 'picture', $picturetouse, array('id' => $usernew->id));
return true;
}
return false;
}
示例11: assignsubmission_onenote_pluginfile
/**
* Serves assignment submissions and other files.
*
* @param mixed $course course or id of the course
* @param mixed $cm course module or id of the course module
* @param context $context
* @param string $filearea
* @param array $args
* @param bool $forcedownload
* @return bool false if file not found, does not return if found - just send the file
*/
function assignsubmission_onenote_pluginfile($course, $cm, context $context, $filearea, $args, $forcedownload)
{
global $DB, $CFG;
if ($context->contextlevel != CONTEXT_MODULE) {
return false;
}
require_login($course, false, $cm);
$itemid = (int) array_shift($args);
$record = $DB->get_record('assign_submission', array('id' => $itemid), 'userid, assignment, groupid', MUST_EXIST);
$userid = $record->userid;
$groupid = $record->groupid;
require_once $CFG->dirroot . '/mod/assign/locallib.php';
$assign = new assign($context, $cm, $course);
if ($assign->get_instance()->id != $record->assignment) {
return false;
}
if ($assign->get_instance()->teamsubmission && !$assign->can_view_group_submission($groupid)) {
return false;
}
if (!$assign->get_instance()->teamsubmission && !$assign->can_view_submission($userid)) {
return false;
}
$relativepath = implode('/', $args);
$fullpath = "/{$context->id}/assignsubmission_onenote/{$filearea}/{$itemid}/{$relativepath}";
$fs = get_file_storage();
if (!($file = $fs->get_file_by_hash(sha1($fullpath))) || $file->is_directory()) {
return false;
}
// Download MUST be forced - security!
send_stored_file($file, 0, 0, true);
}
示例12: local_filemanager_pluginfile
function local_filemanager_pluginfile($course, $cm, $context, $filearea, $args, $forcedownload, array $options = array())
{
global $DB;
if ($context->contextlevel != CONTEXT_SYSTEM) {
return false;
}
require_login();
if ($filearea != 'attachment') {
return false;
}
$itemid = (int) array_shift($args);
if ($itemid != 0) {
return false;
}
$fs = get_file_storage();
$filename = array_pop($args);
if (empty($args)) {
$filepath = '/';
} else {
$filepath = '/' . implode('/', $args) . '/';
}
$file = $fs->get_file($context->id, 'local_filemanager', $filearea, $itemid, $filepath, $filename);
if (!$file) {
return false;
}
// finally send the file
send_stored_file($file, 0, 0, true, $options);
// download MUST be forced - security!
}
示例13: copy_file_moodle2backup
/**
* Copy one file from moodle storage to backup storage
*/
public static function copy_file_moodle2backup($backupid, $filerecorid)
{
global $DB;
// Normalise param
if (!is_object($filerecorid)) {
$filerecorid = $DB->get_record('files', array('id' => $filerecorid));
}
// Directory, nothing to do
if ($filerecorid->filename === '.') {
return;
}
$fs = get_file_storage();
$file = $fs->get_file_instance($filerecorid);
// If the file is external file, skip copying.
if ($file->is_external_file()) {
return;
}
// Calculate source and target paths (use same subdirs strategy for both)
$targetfilepath = self::get_backup_storage_base_dir($backupid) . '/' . self::get_backup_content_file_location($filerecorid->contenthash);
// Create target dir if necessary
if (!file_exists(dirname($targetfilepath))) {
if (!check_dir_exists(dirname($targetfilepath), true, true)) {
throw new backup_helper_exception('cannot_create_directory', dirname($targetfilepath));
}
}
// And copy the file (if doesn't exist already)
if (!file_exists($targetfilepath)) {
$file->copy_content_to($targetfilepath);
}
}
示例14: __construct
public function __construct()
{
global $USER;
$this->context = get_context_instance(CONTEXT_USER, $USER->id);
$fs = get_file_storage();
$this->dir = $fs->get_area_tree($this->context->id, 'user', 'private', 0);
}
示例15: __construct
public function __construct($context)
{
global $USER;
$this->context = $context;
$fs = get_file_storage();
$this->dir = $fs->get_area_tree($this->context->id, 'user', 'csvenrol', 0);
}