Я пытаюсь написать скрипт, который позволяет пользователю загружать папку. Обычно пользователь указывает папку, и все содержащиеся в ней файлы должны быть загружены с восстановлением относительного пути или структуры папки на сервере.
HTML-часть использует webkitdirectory
,
<form action="cmd/test" enctype="multipart/form-data" method="post">
<input id="upload" name="content[]" type="file" value="Input" directory webkitdirectory>
<input type="submit" value="submit">
</form>
А сервер написан на Laravel. Я надеялся использовать Request
в Laravel, как
Route::any('cmd/test', function(\Illuminate\Http\Request $request) {
echo $request;
$files = $request->file('content');
echo json_encode($files);
//Store the files here...
});
Я попытался загрузить тестовую папку со следующим содержимым:
dir /s test
Directory of C:\Users\███████\Desktop\test
18-Nov-18 05:19 PM <DIR> .
18-Nov-18 05:19 PM <DIR> ..
18-Nov-18 05:19 PM 1 note1.txt
18-Nov-18 05:19 PM 1 note2.txt
18-Nov-18 05:20 PM <DIR> test1
2 File(s) 2 bytes
Directory of C:\Users\███████\Desktop\test\test1
18-Nov-18 05:20 PM <DIR> .
18-Nov-18 05:20 PM <DIR> ..
18-Nov-18 05:20 PM 1 note3.txt
1 File(s) 1 bytes
Total Files Listed:
3 File(s) 3 bytes
К моему удивлению, результат теста скрипта равен
[{},{},{}]
Информация об имени файла или содержимом не извлекается с помощью Request::file()
. Тот же результат с Edge или Firefox. Есть предложения?
РЕДАКТИРОВАТЬ: Это в основном мой плохой, чтобы не понимать, тип возвращаемого значения UploadedFile
. Проблема получения относительного пути к файлам для восстановления структуры папок остается.