Laravel - 将干预图像模型(\Intervention\Image\Image)转换为上传文件模型(\Illuminate\Http\UploadedFile)
Laravel - Convert Intervention Image Model(\Intervention\Image\Image) to UploadedFile model (\Illuminate\Http\UploadedFile)
Storage::put 方法的第二个参数只接受 \Illuminate\Http\UploadedFile(或文件)模型。如何在不保存到存储的情况下将 \Intervention\Image\Image 转换为 UploadedFile?
if($request->hasFile('image')) {
$image = $request->file('image');
$image_resize = Image::make($image->getRealPath());
$image_resize->resize(300, 300);
$image_resize->encode();
$imagePath = Storage::put(public_path(), new File($image_resize), 'public');
}
我认为您需要将代码更改为...
$image_resize->encode()
到 $image_resize->stream()->__toString();
因为我认为 encode()
是多余的。
然后 Storage::put(public_path(), new File($image_resize), 'public')
到 Storage::disk('local')->put($image->getClientOriginalName(), $image->stream()->__toString(), 'public');
注意文件名由原始名称设置...我建议将其更改为唯一名称,如果您需要帮助我会开始在 https://laracasts.com/discuss/channels/general-discussion/how-to-generate-long-unique-name-for-filename?page=1
Storage::put 方法的第二个参数只接受 \Illuminate\Http\UploadedFile(或文件)模型。如何在不保存到存储的情况下将 \Intervention\Image\Image 转换为 UploadedFile?
if($request->hasFile('image')) {
$image = $request->file('image');
$image_resize = Image::make($image->getRealPath());
$image_resize->resize(300, 300);
$image_resize->encode();
$imagePath = Storage::put(public_path(), new File($image_resize), 'public');
}
我认为您需要将代码更改为...
$image_resize->encode()
到 $image_resize->stream()->__toString();
因为我认为 encode()
是多余的。
然后 Storage::put(public_path(), new File($image_resize), 'public')
到 Storage::disk('local')->put($image->getClientOriginalName(), $image->stream()->__toString(), 'public');
注意文件名由原始名称设置...我建议将其更改为唯一名称,如果您需要帮助我会开始在 https://laracasts.com/discuss/channels/general-discussion/how-to-generate-long-unique-name-for-filename?page=1