Я публикую это на форуме PyroCMS, чтобы привлечь более широкую аудиторию за помощью, поскольку я просто не могу понять это.
Когда я пытаюсь загрузить несколько файлов с помощью библиотеки файлов PyroCMS, у меня возникают проблемы. Похоже, я могу получить файлы для загрузки по отдельности при вызове библиотеки, а также могу получить файлы для загрузки в обход библиотеки и тестирования с помощью move_uploaded_file. Я создал следующий (слегка урезанный) код в своем контроллере:
public function upload($id)
{
// Folder selected or redirect
$id or redirect('admin/mis/resources');
// Run on validation
if ($_FILES)
{
if (count($_FILES['userfile']['name'] > 0))
{
foreach ($_FILES['userfile']['name'] as $file)
{
$upload = Files::upload($id, $file);
}
}
redirect('admin/vle/resources/contents/'.$id);
}
$this->template->build('admin/resources/upload');
}
Однако при запуске этого кода файл не загружается. Если я вывожу загрузку, я получаю следующее сообщение:
Массив ( [статус] => [сообщение] =>
Вы не выбрали файл для загрузки.
Кажется, я не могу в жизни понять, как передать более одного файла в Files::upload. Я уверен, что что-то упускаю. Однако дело не в том, что я не могу получить файлы для загрузки в целом, потому что, если я изменю код на это локально для целей тестирования, мои файлы загружаются очень хорошо:
if($_FILES)
{
if(count($_FILES['userfile']['name']))
{
foreach ($_FILES['userfile']['name'] as $file)
{
$img = "c:/wamp/www/testupload/files/".$file;
move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $img);
}
}
}
Метод загрузки библиотеки файлов здесь https://github.com/pyrocms/pyrocms/blob/2.2/develop/system/cms/modules/files/libraries/Files.php#L333
Я пробовал много разных вещей до такой степени, что у меня немного кружится голова, пытаясь справиться с этим. Так что, если кто-то может помочь, это будет оценено.