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

时间:2011-01-20 19:05:32

标签: php amazon-s3

这让我很生气。我正在使用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
        ));

你能帮忙吗?

感谢

4 个答案:

答案 0 :(得分:19)

            $s3->create_object($bucket, $file_name, array(
                    'fileUpload' => $resized_image,
                    'contentType' => $_FILES['image']['type'],
                    'acl' => AmazonS3::ACL_PUBLIC
            ));

答案 1 :(得分:14)

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

答案 2 :(得分:2)

自己动手,看似有效,假设它是内容类型:

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

* 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
));

答案 3 :(得分:2)

如果您正在使用网址图片,请使用

'ContentType'  => mime_content_type($absolutePathToImage),

而不是

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