Laravel and Intervention / Image:将照片上传到AWS S3存储桶会产生0个字节的文件

问题描述 投票:0回答:1

我在Laravel中使用http://image.intervention.io/来调整图像的大小,然后再将它们存储在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() / [ C0]。

resize()对象具有以下字段:

$resizedImage

我猜编码属性应该包含基本64位图像数据之类的东西?

[在AWS S3存储桶中检查图像时,总是将其作为0字节的图像上载。我在这里错了吗?

干预被配置为使用GD,如果有任何不同的话

php image laravel-5 php-7 intervention
1个回答
0
投票

[[encoded] => [mime] => image/jpeg [dirname] => /private/var/folders/23/jl2dytp168g9g9s5j51w2m780000gn/T [basename] => phpTNRdXe [extension] => [filename] => phpTNRdXe Laravel File class的子类,而这又是Symfony File class]的子类>

文件对象可以直接在\ SplFileInfo中传递。 Image::make对象的Image::make gets the realPath

Image :: make返回realPath的实例,\SplFileInfo返回其Image字段的值。 $resizedImage->__toString()encoded开头。

访问图像的编码值之前,图像应为encoded

empty string

然后,

encoded
© www.soinside.com 2019 - 2024. All rights reserved.