Ошибка getSize () Laravel и Intervention Image - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь интегрировать Intervention / Image в свой проект laravel, чтобы создать миниатюру при загрузке изображения.

Сама загрузка изображения работает нормально, похоже, нет проблем с распознаванием самого Intervention. ,

Ниже приведен блок кода. Кажется, что ошибка возникает в строке с оператором save, я могу умереть и сбросить содержимое $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 (все это локально, кстати), чтобы он принимал файлы размером 20 МБ, а файл, который я пытаюсь загрузить, занимает менее 100 КБ. Я также сбросил оба php через homebrew и apache. Все еще получаю сообщение об ошибке.

Есть ли какие-либо явно очевидные проблемы в моем использовании Intervention? Я с радостью предоставлю больше информации, это в функции магазина в одном из моих контроллеров, кстати.

1 Ответ

0 голосов
/ 04 октября 2019

Не проверено, но я делаю это так:

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

...