【问题标题】:Amazon s3 viewing the uploaded image will let me download the image亚马逊 s3 查看上传的图片会让我下载图片
【发布时间】:2012-01-08 13:36:21
【问题描述】:

我在 Amazon s3 中上传图像,但是当我尝试在浏览器中查看文件时,它允许我下载图像,我将如何禁用该图像?我的预期结果应该是在浏览器中看到图像。我该怎么做呢?

我听说过设置标题,但我不熟悉。

谁能教我如何完成这个。

谢谢!

任何帮助将不胜感激和奖励。

【问题讨论】:

标签: php javascript amazon-s3


【解决方案1】:

你在使用AWS SDK for PHP吗?

您需要为您的图像设置正确的Content-Type,否则默认为application/octet-stream,这就是您的浏览器下载文件的原因。 wikipedia 上有很好的值列表。

// Instantiate the class
$s3 = new AmazonS3();

$response = $s3->create_object('my-bucket', 'myimgae.jpg', array(
    'contentType' => 'image/jpeg'
));

// Success?
var_dump($response->isOK());

或者对于S3中已有的对象,可以使用change_content_type

最后,如果你是generating pre-signed urls,可以动态设置content-type

// Instantiate the class
$s3 = new AmazonS3();

// Get the URL
$url = $s3->get_object_url('bucket', 'myimage.jpg', '5 minutes', array(
    'response' => array(
        'content-type' => 'image/jpeg'
    )
));

【讨论】:

  • 感谢您的回答。是的,我正在使用适用于 PHP 的 AWS 开发工具包。我已经使用 'content-type' => 'image/jpeg' 对其进行了测试。我的系统还允许 png 和 gif,所以如果文件扩展名是 gif,我将如何使“内容类型”灵活,然后我将其设为 image/gif,或者如果 png 我将其设为 image/png。谢谢!
  • @ElsonSolano - 除了查看文件的扩展名然后查找适当的 content-type 之外,我不知道任何其他方法。
  • 我想通了。我刚刚使用了 $_FILES['type']。输出上传文件的文件类型/扩展名。例如“图像/JPEG”。所以我们可以输入 'content-type => $_FILES['type'] 无论如何,感谢您的回答! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-13
  • 2015-01-19
  • 2015-02-20
  • 1970-01-01
  • 2012-07-07
  • 2019-01-23
  • 2017-08-01
相关资源
最近更新 更多