php - Laravel 和干预图像 getSize() 错误
问题描述
我正在尝试将干预/图像集成到我的 laravel 项目中,以便在上传图像时创建缩略图。
图片上传本身工作正常,识别干预本身似乎没有任何问题。
下面是代码块。该错误似乎发生在保存语句的行上,我可以在$img
设置后死掉并转储内容。
$file = $request->file('image');
$name = md5($file->getClientOriginalName() . time());
$extension = $file->getClientOriginalExtension();
$fileName = $name . '.' . $extension;
$file->move('./uploads/images/', $fileName);
$img = Image::make($file)->fit(300);
$img->save('/uploads/thumbnails/' . $name, 60, 'jpg');
这是我得到的错误:
SplFileInfo::getSize(): stat failed for /private/var/folders/87/p5x7mgy914qg9ytf2zccc6q00000gn/T/php3lshFS
经过一番搜索,我发现这可能与文件大小上传限制有关,但我已经更改了我的 php.ini 文件(所有这些都是本地 btw)以接受 20MB 文件,而我要上传的文件是小于 100kb。我还通过 homebrew 和 apache 重置了 php。仍然收到错误。
在我使用干预的过程中是否有任何明显的问题?我很乐意提供更多信息,顺便说一句,这是在我的一个控制器中的存储功能中。
解决方案
未经测试,但我这样做:
public function thumbnail(Request $request){
$thumbDir= storage_path('app/public').'/uploads/thumbnails/';
$file = $request->file('image');
$filename = md5($file->getClientOriginalName() . time()).'.jpg';
// $name = md5($file->getClientOriginalName() . time());
// $extension = $file->getClientOriginalExtension();
// $fileName = $name . '.' . $extension;
// $file->move('./uploads/images/', $fileName);
Image::make($file)->encode('jpg', 60)->fit(300, null, function ($c) {
$c->aspectRatio();
$c->upsize();
})->save($thumbDir . $filename);
return back()->with('success','The Image Has Been Added.');
}
推荐阅读
- verilog - SystemVerilog:使用写指针写入数组
- javascript - 按要上传的文件大小对文件数组进行分组
- android - 如何让 Android 应用程序访问 Hexagon DSP
- php - 服务 'myservice' 未能构建:命令 '/bin/sh -c apk --update --no-cache
- regex - 有没有办法一次将 Notepad ++ 中的正则表达式查找/替换应用于一定数量的行?
- python - python人脸检测问题有人可以帮我吗
- spring-boot - findAll() 为空但 findById 存在
- python-3.x - BeautifulSoup 请求或请求?
- javascript - Material-Ui 主题自定义:悬停在包含的按钮上
- asp.net-mvc - 确认电子邮件链接未隐藏在纯文本客户端中