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

Php Moodle,使用Moodle表单上传和存储文件,php,file-upload,moodle,Php,File Upload,Moodle,我在使用moodle表单实现moodle上传机制时遇到了一些困难。我的目标是让用户/管理员上传图像,存储它们,然后在块中访问 目前,我有以下表格: $mform->addElement('filemanager', 'attachments', 'Pic:', null, array('subdirs' => 0, 'maxfiles' => 1,'accepted_types' => '*' )); 要保存文件,请执行以下操作: if ($draftitemid =

我在使用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

提前感谢,,
小心点

听起来你想写一个自定义块,在这种情况下,你应该把block\u myblock作为组件名,而不是mod\u赋值

为文件服务的每个Moodle组件都需要在lib.php中定义自己的函数来处理文件请求。在您的例子中,该函数希望被调用为类似
block\u myblock\u pluginfile()


一个很好的例子是
block\u html\u pluginfle()
,可以在moodle/blocks/html/lib.php中找到它,它的功能与您想要的非常类似。

您是否检查了错误日志并启用了错误,也许您有权限问题。是的,它是一个测试服务器,总是启用错误。我也检查了日志,什么都没有。我真的不明白。马克是对的,你应该看看