Предполагается, что вы добавили элемент следующим образом:
$mform->addElement('filepicker', 'file', "Upload a Document", null, array('maxbytes' => 1024*1024, 'accepted_types' =>array('*.png', '*.jpg', '*.gif','*.jpeg', '*.doc', '*.rtf','*.pdf','*.txt')));
Теперь при условии, что Вы получите данные как следующие
$data = $lesson_form->get_data()
См. Код ниже, чтобы загрузить файл в указанную папку на вашем сервере. Это совместимо с Moodle 2.2 +
$realfilename = $lesson_form->get_new_filename('file'); // this gets the name of the file
$random =rand(); // generate some random number
$new_file = $random.'_'.$realfilename; //add some random string to the file
$dst = "uploads/$new_file"; // directory name+ new filename
if($realfilename !=''){ // checking this to see if any file has been uploaded
save_files($dst); // moodle function to save a file in given folder
}
Я столкнулся с той же проблемой, с которой вы столкнулись, и она решила мою проблему.
N.B. -> Не забудьте изменить папку загрузки на 0777.