Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用SimpleImage调整图像大小,并将其直接发送到AmazonS3_Php_Amazon S3 - Fatal编程技术网

Php 使用SimpleImage调整图像大小,并将其直接发送到AmazonS3

Php 使用SimpleImage调整图像大小,并将其直接发送到AmazonS3,php,amazon-s3,Php,Amazon S3,上传图像后,我使用调整大小并发送到AWS S3。今天我将图像保存在本地磁盘中,发送到S3,然后删除本地文件。我想跳到保存和删除本地文件的步骤 我试过: $S3->putObject([ 'Bucket' => 'mybucket', 'Key' => 'myfile.jpeg', 'Body' => (new SimpleImage('/path/to/myfile.jpeg')) ->bes

上传图像后,我使用调整大小并发送到AWS S3。今天我将图像保存在本地磁盘中,发送到S3,然后删除本地文件。我想跳到保存和删除本地文件的步骤

我试过:

$S3->putObject([
    'Bucket' => 'mybucket',
    'Key'    => 'myfile.jpeg',
    'Body'   => (new SimpleImage('/path/to/myfile.jpeg'))
                    ->bestFit(
                        800,
                        600
                    )->toString();
]);
该文件已发送,但当我在AWS S3访问其公共URL时,浏览器尝试下载该文件而不显示它


欢迎任何帮助

您需要将对象公开并添加ContentType

$S3->putObject([
    'Bucket'      => 'mybucket',
    'Key'         => 'myfile.jpeg',
    'ContentType' => 'image/jpeg',     // <-- add this line
    'Body'        => (new SimpleImage('/path/to/myfile.jpeg'))
                        ->bestFit(
                            800,
                            600
                      )->toString();
]);
$S3->putObject([
“Bucket”=>“mybucket”,
'Key'=>'myfile.jpeg',
'ContentType'=>'image/jpeg',//(新的SimpleImage('/path/to/myfile.jpeg'))
->最佳匹配(
800,
600
)->toString();
]);

bucket有一个公共策略,因此默认情况下所有文件都是公共的。请尝试添加“ContentType”=>“image”,另外,这可能会有所帮助。。。当您看到S3上的图像属性时,它是否表示它是公共的?另外,尝试将路径包含到html页面中,并查看是否显示图像。。。当我通过S3访问图像并下载时,我遇到了这个问题,但它完美地显示在浏览器中添加了“ContentType”,它工作正常,谢谢!请更新你的答案,我会接受的。