amazon s3 - 图像下载而不是在浏览器中显示

Posted

技术标签:

【中文标题】amazon s3 - 图像下载而不是在浏览器中显示【英文标题】:amazon s3 - image downloading instead of displaying in browser 【发布时间】:2011-06-12 16:32:24 【问题描述】:

这快把我逼疯了。我正在使用 php SDK 将图像上传到 S3。每当我浏览到图片 URL 时,浏览器都会下载图片而不是显示它。

我认为这与内容类型有关。

        // Prepare to upload the file to S3 bucket.
        $s3->create_object($bucket, $file_name, array(
                'contentType' => 'binary/octet-stream',
                'acl' => AmazonS3::ACL_PUBLIC
        ));

你能帮忙吗?

谢谢

【问题讨论】:

您能发一个图片网址的示例吗? 也许尝试将内容类型更改为“图像/jpg”(当然假设为 jpg)? w3schools.com/media/media_mimeref.asp 【参考方案1】:
            $s3->create_object($bucket, $file_name, array(
                    'fileUpload' => $resized_image,
                    'contentType' => $_FILES['image']['type'],
                    'acl' => AmazonS3::ACL_PUBLIC
            ));

【讨论】:

那些使用 AWS SDK for PHP 3.x 和 putObject() 的情况对于键是不同的。它将是“ContentType”和“ACL”。【参考方案2】:

您的内容类型确实是错误的。例如,对于 JPG,它需要是 image/jpeg。请参阅此站点以获取列表: http://en.wikipedia.org/wiki/Internet_media_type

【讨论】:

$s3->create_object($bucket, $file_name, array( 'fileUpload' => $resized_image, 'contentType' => $_FILES['image']['type'], 'acl ' => AmazonS3::ACL_PUBLIC ));【参考方案3】:

自行工作,看似有效,假设它是内容类型:

您需要为正在上传的图片设置正确的内容类型,以下列表包含所有最常见的类型

* image/gif: GIF image
* image/jpeg: JPEG JFIF image
* image/png: Portable Network Graphics
* image/svg+xml: SVG vector image
* image/tiff: Tag Image File Format
* image/vnd.microsoft.icon: ICO image

因此,对 png 上传的示例代码进行了修改:

// Prepare to upload the file to S3 bucket.
$s3->create_object($bucket, $file_name, array(
            'contentType' => 'image/png',
            'acl' => AmazonS3::ACL_PUBLIC
));

【讨论】:

将内容类型更改为 image/jpg 仍然获得下载对话框 你能发一个图片网址的样本吗? 已解决。需要添加fileUpload键。【参考方案4】:

如果您正在使用 URL 图片,请使用

'ContentType'  => mime_content_type($absolutePathToImage),

而不是

$_FILES['image']['type']

【讨论】:

以上是关于amazon s3 - 图像下载而不是在浏览器中显示的主要内容,如果未能解决你的问题,请参考以下文章

s3-amazon 图像 CORS 问题(仅在 5-8 小时后发生在少数浏览器中)

PHP 将远程图像保存到 Amazon S3

amazon s3 iphone sdk 下载图片

处理从 Amazon S3 下载的多个文件?

在 Amazon S3 中托管静态网站而不使用 Amazon 路由 53

ios amazon s3 上传视频文件