我在laravel 5.4 ......
我需要上传一些图片并为每张图片制作缩略图,并以其他名称保存缩略图。
好吧,上传工作正常但是当我尝试使用intervention
包调整图片大小并制作缩略图时,保存的缩略图似乎已被破坏。
这是我的代码:
$image = $request->file('ax');
$imagename = mt_rand(999, 999999) . "_" . time() . "_" . $image->getClientOriginalExtension();
$img = Image::make($image->getRealPath());
$width = $img->width();
$height = $img->height();
$img->resize(200, null, function ($constraint) {
$constraint->aspectRatio();
})->save(public_path('storage/' . $token) . '/' . $imagename);
如果我将storage path
更改为:
Storage::url($token)
我会收到一个错误说:
无法将图像数据写入路径(/ storage / ajxpmXZF2rPfyOu39CcdEgC7Gpi5AlGviysrug88 / 872130_1496335864_jpg)
请你帮我找一下我的问题......?
提前致谢
答案 0 :(得分:0)
相应地更改图像的存储路径。如果图像上传失败,请优雅地处理它而不是例外。
$image = $request->file('ax');
if (!$image->isValid()) {
throw new \Exception('Failed to upload image.');
}
$imagename = mt_rand(999, 999999) . "_" . time() . "_" . $image->getClientOriginalExtension();
$img = Image::make($image);
$img->resize(200, null, function ($constraint) {
$constraint->aspectRatio();
});
$img->save(public_path("storage/{$token}/{$imagename}"));