Laravel 无法上传存储文件夹中的文件
Laravel can't upload file in storage folder
我以前将上传的文件(图片)存储在我的 public 文件夹中,但这次我想将它们存储在我的存储文件夹中,但出现此错误
Can't write image data to path (C:\laragon\www\mynewsite\storage\images/aboutimage-1522481830.png)
错误来自这一行(我在其中使用 intervention/image 包)
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);
}
已解决
这是最终代码:
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
删除它们的路径。
我以前将上传的文件(图片)存储在我的 public 文件夹中,但这次我想将它们存储在我的存储文件夹中,但出现此错误
Can't write image data to path (C:\laragon\www\mynewsite\storage\images/aboutimage-1522481830.png)
错误来自这一行(我在其中使用 intervention/image 包)
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);
}
已解决
这是最终代码:
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
删除它们的路径。