首页 > 解决方案 > 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。仍然收到错误。

在我使用干预的过程中是否有任何明显的问题?我很乐意提供更多信息,顺便说一句,这是在我的一个控制器中的存储功能中。

标签: phplaravelimageintervention

解决方案


未经测试,但我这样做:

    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.');
    }


推荐阅读