Moodle,使用moodle表单上传和存储文件

时间:2012-08-26 02:09:26

标签: php file-upload moodle

我有一些困难使用moodle表单实现moodle上传机制。我的目标是让用户/管理员上传图像,存储它们并稍后在块中访问。

目前,我的形式是:

$mform->addElement('filemanager', 'attachments', 'Pic:', null, array('subdirs' => 0, 'maxfiles' => 1,'accepted_types' => '*' ));

并保存文件:

if ($draftitemid = file_get_submitted_draft_itemid('attachments')) {
file_save_draft_area_files($draftitemid, $context->id, 'mod_assignment', 'attachments', 0, array('subdirs' => false, 'maxfiles' => 1));
}

我尝试访问这样的文件:

file_encode_url($CFG->wwwroot . '/pluginfile.php', '/' . $context->id . '/mod_assignment/attachments')

我没有收到任何错误,但我也无法访问该文件。我正在使用moodle 2.0。

提前致谢, 小心

1 个答案:

答案 0 :(得分:2)

听起来您正在寻找自定义块,在这种情况下,您应该将 block_myblock 作为组件名称,而不是 mod_assignment

每个提供文件的Moodle组件都需要在lib.php中定义自己的函数来处理文件请求。在你的情况下,函数想要被称为block_myblock_pluginfile()

这方面的一个很好的例子是block_html_pluginfile(),它可以在 moodle / blocks / html / lib.php 中找到,并做一些与你想要的非常相似的事情。