gpt4 book ai didi

php - 在 Laravel 中调整上传图像的大小并存储在 S3 中不起作用

转载 作者:可可西里 更新时间:2023-11-01 13:53:16 25 4
gpt4 key购买 nike

我正在尝试将几个调整大小的图像上传到 S3,但不知何故所有图像的大小都相同。以不同的大小在本地存储它们不会有任何问题。我错过了什么?

public function uploadFileToS3(Request $request) {
$image = Image::make($request->file('image'))->encode('jpg', 75);
$s3 = Storage::disk('s3');

$image_file_name = $this->generateName($request->name) . '.jpg';
$file_path = '/' . config('folder') . '/' . $request->name . '/';

$s3->put($file_path.'original_'.$image_file_name, $image, 'public');
$s3->put($file_path.'medium_'.$image_file_name, $image->fit(300, 300), 'public');
$s3->put($file_path.'thumb_'.$image_file_name, $image->fit(100, 100), 'public');

return json_encode(array(
'filename' => $image_file_name
));
}

所有版本都成功存储在S3中,只是大小相同

最佳答案

我有两个可能的解决方案。

尝试在尝试存储它们之前完全进行图像处理:

$s3->put($file_path.'original_'.$image_file_name, $image, 'public');
$image->fit(300, 300);
$s3->put($file_path.'medium_'.$image_file_name, $image, 'public');
$image->fit(100, 100);
$s3->put($file_path.'thumb_'.$image_file_name, $image, 'public');

尝试将图像转换为字符串,实际输出文件内容应该可以正常工作:

$s3->put($file_path.'original_'.$image_file_name, (string) $image, 'public');

关于php - 在 Laravel 中调整上传图像的大小并存储在 S3 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33000950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com