我正在使用Moodle 3.1+。我使用filepicker上传文件。它工作正常。但filepicker只显示上传的文件名。我想在filepicker中显示上传的图像,这似乎是不可能的。另一个选择是使用filemanager,但它需要额外的参数,比如contextid,在我的情况下不存在。我将上传的图像路径插入到我创建的表中。那么如何使用filemanager将文件保存到自定义表中呢?
file_save_draft_area_files($data->attachments, $context->id, 'mod_glossary', 'attachment',
$entry->id, array('subdirs' => 0, 'maxbytes' => $maxbytes, 'maxfiles' => 50));
答案 0 :(得分:0)
首先,在表单中创建一个filemanager元素:
$filemanageropts = $this->_customdata['filemanageropts'];
$mform->addElement('filemanager', 'attachment',get_string('displayedcontent', 'block_helloworld'), null, $filemanageropts);
注意:附件与我的自定义表格中的名称相同。因此,此字段将填充文件itemid。
然后,在您构建逻辑脚本保存文件到您的自定义区域:
//form has been submitted
file_save_draft_area_files($form_submitted_data->attachment, $context->id, 'block_helloworld', 'attachment',
$form_submitted_data->attachment, array('subdirs' => 0, 'maxbytes' => 500000, 'maxfiles' => 1));
然后,当您加载表单数据时:使用以下命令准备MOODLE中的草稿区域:
$draftitemid = $helloworldpage->attachment ;
file_prepare_draft_area($draftitemid, $context->id, 'block_helloworld', 'attachment', $helloworldpage->attachment,
array('subdirs' => 0, 'maxbytes' => 5000000, 'maxfiles' => 1));
资源: