1

需要帮忙,

我的最后期限快到了,我陷入了困境,

在尝试执行以下任务时我完全迷失了:存储用户从moodle表单上传的文件并从moodle之外的项目访问(也下载)它。

详细场景:

用户将通过填写请求表来提出请求(每种请求类型的请求表都不同)。用户必须从 Moodle 表单上传以下文件: * 收据 * 支持文档

需要存储文件的文件夹: 在服务器上:

  • Uploads/Performa/Request_cardissuance/requestid.pdf
  • Uploads/Performa/Request_degreeissuance/requestid.pdf(Performa 是申请表的 pdf 格式)
  • Uploads/Receipt/Request_cardissuance/requestid.jpg
  • Uploads/Receipt/Request_degreeissuance/requestid.jpg
  • Uploads/Supporting_docs/Request_cardissuance/requestid.zip
  • Uploads/Supporting_docs/Request_degreeissuance/requestid.zip

一个单独的 php 项目将有表:

[ Sr. No | Request ID | Request Type ID | Performa | Receipt| Supporting Docs | Action| 1 | 1 | 1 | (link , when clicked downloads the pdf file)|do|do|action link ]

我为它制作了moodle表单并添加了filemanager元素:

$mform->addElement('filemanager', 'receipt', get_string('receipt_file'), null,
                   array('maxbytes' => $CFG->maxbytes, 'accepted_types' => '*'));

在此之后我必须在 view.php 中做什么:

$fromform=$form->get_data() ;

<a href="http://stackoverflow.com/questions/6666572/how-to-store-a-file-in-moodle-so-that-it-is-accessible-for-an-external-applicati">this</a> is what I followed but I get a server error on calling function **get_new_filename()**

使用moodle v2.4。

您的帮助将不胜感激。

4

1 回答 1

0

我认为您可能希望对每个文件使用文件选择器而不是文件管理器。然后将文件保存到上面的文件夹中。

$mform->addElement('filepicker', 'receipt', get_string('receipt_file'), null,
               array('maxbytes' => $maxbytes, 'accepted_types' => '*'));
...
$id = $DB->insert_record(...)
$fullpath = "Uploads/Performa/Request_cardissuance/request{$id}.pdf";
$override = true;
$success = $mform->save_file('receipt', $fullpath, $override);

http://docs.moodle.org/dev/Using_the_File_API_in_Moodle_forms#filepicker

我会建议使用 Web 根目录之外的文件夹,除非文档是公开的?

于 2013-10-23T23:35:42.743 回答