Как загрузить нескольких файлов в Laravel?
Как прописать в контролере загрузку не скольких файлов из формы. Сейчас у меня грузит один. Я пробовала указывать на форме где name="file_task[]" и в контроллере использовать метод store(), он передаю массив, но вот путь передает неправильный . Контроллер для загрузки одного файла:
class StoreController extends Controller
{
public function __invoke(StoreRequest $request)
{
$data = $request->validated();
// указываем куда перемещаем файл
$data['file_task'] = Storage::disk('public')->put('/images', $data['file_task']);
Task::firstOrCreate($data);
return redirect()->route('operator.task.index');
}
}
и форма
<div class="form-group class = w-50">
<label for="exampleInputFile">Добавить файл</label>
<div class="input-group">
<div class="custom-file">
<input type="file" name="file_task[]" multiple class="custom-file-input">
<label class="custom-file-label">Выберите файл</label>
</div>
<div class="input-group-append">
<span class="input-group-text">Загрузка</span>
</div>
</div>
Ответы (1 шт):
Автор решения: Yauhen Kib
→ Ссылка
Попробуйте что-то вроде этого:
foreach ($request->file('file_task') ?? [] as $file) {
// save each file
}