Laravel не может загрузить файл в папку хранения
Я имел обыкновение хранить свои файлы загрузки (изображения) в моей общей папке, но на этот раз я хочу сохранить их в своей папке хранения, и я получаю эту ошибку
Can't write image data to path (C:\laragon\www\mynewsite\storage\images/aboutimage-1522481830.png)
Ошибка исходит от этой строки (где я использую интервенцию / пакет изображений)
Image::make($image)->resize(1200, 600)->save($location);
Моя функция:
if ($request->hasFile('image')) {
$image = $request->file('image');
$filename = 'aboutimage' . '-' . time() . '.' . $image->getClientOriginalExtension();
$location = storage_path('images/' . $filename);
Image::make($image)->resize(1200, 600)->save($location);
$oldFilename = $indexabout->image;
$indexabout->image = $filename;
Storage::delete($oldFilename);
}
любая идея?
ОБНОВИТЬ
Мои файлы будут загружены в root/storage
папка вместо root/storage/app/public/images
это почему?
Обновление 2
Я изменил свою функцию на код ниже, и она загружается туда, где она должна быть загружена, но it does not delete the old image
if ($request->hasFile('image')) {
$image = $request->file('image');
$filename = '/aboutimage' . '-' . time() . '.' . $image->getClientOriginalExtension();
$location = storage_path('app/public/images' . $filename);
Image::make($image)->resize(1200, 600)->save($location);
$oldFilename = $indexabout->image;
$indexabout->image = $filename;
Storage::delete($oldFilename);
}
1 ответ
РЕШИТЬ
вот окончательный код:
if ($request->hasFile('image')) {
$image = $request->file('image');
$filename = 'aboutimage' . '-' . time() . '.' . $image->getClientOriginalExtension();
$location = storage_path('app/public/images/' . $filename); // root storage path
Image::make($image)->resize(1200, 600)->save($location);
Storage::delete('images/' . $indexabout->image); //public storage path
$indexabout->image = $filename;
}
В основном я дал Root/Storage
путь для хранения данных и Public/Storage
путь для их удаления в методе обновления.