Я использую http://image.intervention.io/ с Laravel для изменения размера изображений перед их сохранением в AWS S3. Вот соответствующий код:
$extension = $image->extension();
$realPath = $image->getRealPath();
$resizedImage = Image::make($realPath) // ->resize(255, 255); // resize or not, make() seems to always return an empty Image
$file_path = "posts/$post->id/images/image-$post->id-num-$pictureCount.$extension/";
$path = Storage::disk('s3')->put($file_path, $resizedImage->__toString(), ['visibility' => 'public']);
При отладке (установлена точка останова на строке $path
), я вижу, что $realPath
содержит значение, подобное /private/var/folders/23/jl2dytp168g9g9s5j51w2m780000gn/T/php9047Fh
- и, переходя туда, я вижу изображение, которое я пытаюсь make()
/ resize()
.
Объект $resizedImage
имеет следующие поля:
[encoded] =>
[mime] => image/jpeg
[dirname] => /private/var/folders/23/jl2dytp168g9g9s5j51w2m780000gn/T
[basename] => phpTNRdXe
[extension] =>
[filename] => phpTNRdXe
Я предполагаю, что закодированное свойство должно хранить что-то вроде данных образа base 64?
При проверке изображения в AWS S3-корзине оно всегда загружается как изображение с 0 байтами. Что я здесь не так делаю?
Вмешательство настроено на использование GD, если оно имеет какое-либо значение