League/Flysystem fstat() 期望参数 1 为给定的资源、对象
League/Flysystem fstat() expects parameter 1 to be resource, object given
我正在将项目从 Laravel 5 升级到 5.1。需要更新的一个包是 League\Flysystem
.
我正在使用 Intervention\Image
调整图像大小,然后使用 Flysystem 将其保存到 S3。下面的代码适用于 5.0 -
// Album ID
$id = $request->input('id');
// Filename for this photo
$filename = str_random() . ".jpg";
// Get the storage disk
$disk = Storage::disk('s3');
// Resize the photo
$image = Image::make($request->file('photo'));
$image->orientate();
$image->resize(1024, 748, function ($constraint) {
$constraint->aspectRatio();
});
$image->encode('jpg');
// Save the photo to the disk
$disk->put("img/album/$id/$filename", $image);
但现在我收到以下错误:
fstat() expects parameter 1 to be resource, object given
,在第 250 行 league\flysystem\src\Util.php
中抛出。
我正在使用 "intervention/image": "~2.1"
、"league/flysystem-aws-s3-v3" : "~1.0",
知道是什么原因造成的吗?
在对 $image
对象进行某种类型转换之前,您可能已经很幸运了,我猜想将您的最后一行简单地更改为
$disk->put("img/album/$id/$filename", $image->__toString());
会解决这个问题,而且更安全,因为 put
方法正式只接受字符串(并且将 php 资源的实现视为 wekk)。
这应该让你兼容长 运行.
中的变化
更好的方法是对编码输出进行类型转换:
http://image.intervention.io/api/encode
$image->encode('jpg');
$disk->put("img/album/$id/$filename", (string) $image);
我得到了版本 "intervention/image": "^2.4",
__toString()
对我不起作用,创建的文件已损坏...
我做到了 ->stream()->getContents()
。
我正在将项目从 Laravel 5 升级到 5.1。需要更新的一个包是 League\Flysystem
.
我正在使用 Intervention\Image
调整图像大小,然后使用 Flysystem 将其保存到 S3。下面的代码适用于 5.0 -
// Album ID
$id = $request->input('id');
// Filename for this photo
$filename = str_random() . ".jpg";
// Get the storage disk
$disk = Storage::disk('s3');
// Resize the photo
$image = Image::make($request->file('photo'));
$image->orientate();
$image->resize(1024, 748, function ($constraint) {
$constraint->aspectRatio();
});
$image->encode('jpg');
// Save the photo to the disk
$disk->put("img/album/$id/$filename", $image);
但现在我收到以下错误:
fstat() expects parameter 1 to be resource, object given
,在第 250 行 league\flysystem\src\Util.php
中抛出。
我正在使用 "intervention/image": "~2.1"
、"league/flysystem-aws-s3-v3" : "~1.0",
知道是什么原因造成的吗?
在对 $image
对象进行某种类型转换之前,您可能已经很幸运了,我猜想将您的最后一行简单地更改为
$disk->put("img/album/$id/$filename", $image->__toString());
会解决这个问题,而且更安全,因为 put
方法正式只接受字符串(并且将 php 资源的实现视为 wekk)。
这应该让你兼容长 运行.
更好的方法是对编码输出进行类型转换:
http://image.intervention.io/api/encode
$image->encode('jpg');
$disk->put("img/album/$id/$filename", (string) $image);
我得到了版本 "intervention/image": "^2.4",
__toString()
对我不起作用,创建的文件已损坏...
我做到了 ->stream()->getContents()
。