Не сохраняются файлы через метод store в Laravel
подскажите пожалуйста из за чего не сохраняются файлы через метод store в Laravel? вроде все по доке верно делаю..
использую Ubuntu
Есть такой массив
Вот мой цикл который сохраняет в базу (тут все ок) и метод store который должен сохранить в папку photos но не делает этого(
foreach ($request['photos'] as $file) {
$advert->photos()->create([
'file' => $file->store('adverts', 'public')
]);
$file->store('photos', 'public');
}
Ответы (2 шт):
попробуй использовать класс Storage::putFile(), вот подробнее в доке можешь почитать https://laravel.com/docs/5.8/filesystem#storing-files
Попробуйте сделать так:
Во первых проверьте есть ли файл.
Во вторых используйте не $request->all(), а получение данных по ключам не в виде массива.
В третьих получите данные о файле с помощью функции file.
foreach ($request->photos as $key => $file) {
if ($request->hasFile('photos.'.$key)) {
$myFile= $request->file('photos.'.$key);
if ($myFile->getClientSize() > $myFile->getMaxFilesize()) {
info("Превышен допустимый размер файла photos.$key");
return;
}
$path = $myFile->store('...');
}
else {
//запишет в лог что файл не найден!
info("Файл photos.$key не найден");
return;
}
}
Если не получится создайте в ручную папку в которую пытаетесь сохранить файл. Не забывайте что по умолчанию директория сохранения storage/app
