php - 从 Laravel 上传到 S3 Quality Lost

标签 php amazon-web-services amazon-s3

我的应用程序将图像上传到 s3。我使用前端渲染来获取图像的颜色,但是因为上传到 s3 会降低质量(jpeg'ish),所以我得到了比我想要的更多的颜色。

enter image description here

$s3 = \Storage::disk('s3');
$s3->put('/images/file.jpg', '/images/file.jpg', 'public');

有没有办法防止这种质量损失?我注意到,如果我直接使用 aws 控制台网站上传文件,质量保持不变,这是理想的。

谢谢!

最佳答案

在 Controller Action 中

public function uploadFileToS3(Request $request)
{
    $image = $request->file('image');
} 

接下来我们需要为上传的文件指定一个文件名。您可以将其保留为原始文件名,但在大多数情况下您需要更改它以保持一致。让我们将其更改为时间戳,并将文件扩展名附加到它。

$imageFileName = time() . '.' . $image->getClientOriginalExtension();

现在获取图片内容如下

$s3 = \Storage::disk('s3');
$filePath = '/images/file.jpg' . $imageFileName;
$s3->put($filePath, file_get_contents($image), 'public');

更多信息可以引用this

关于php - 从 Laravel 上传到 S3 Quality Lost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38064786/

相关文章:

amazon-web-services - 模块 zip 在 AWS lambda 上不可用

amazon-web-services - 如何使用 CLI/SDK 获取 Fargate 任务的 docker 镜像 ID?

database - 使用 terraform 创建数据库模式

amazon-web-services - 使用 FPT/SCP 将文件拉到 S3 的最佳方法是什么?

django - 如何在heroku上设置django-compressor,离线压缩到S3

amazon-web-services - 如何创建开发和生产 Cloudfront key 对?

php - 无法使用 PHPWord TemplateProcessor 下载 word docx

php - Paypal IPN 未更新或插入数据库

php - Socket.io + Nodejs 聊天系统以及 PHP : validating data before emitting through node

php - 在 PHP 中并使用 fpdf 生成 PDF 报告