2011-11-29 182 views
0

我在亞馬遜s3上傳圖片,但是當我嘗試在瀏覽器中查看文件時,它允許我下載圖片,如何禁用該圖片?我的預期結果應該是在瀏覽器中看到圖像。我會怎麼做那個?查看上傳圖片的亞馬遜s3會讓我下載圖片

我聽到了一些設置標題,但我不熟悉這一點。

有人可以教我如何做到這一點。

謝謝!

Anyhelp將不勝感激和獎勵。

+0

的可能重複的[亞馬遜三 - 圖像下載,而不是在瀏覽器中顯示](http://stackoverflow.com/questions/4751360/amazon-s3-image-downloading-instead-of-displaying-in-瀏覽器) – Thilo

回答

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' 
    ) 
)); 
+0

感謝您的回答。 是的,我正在使用適用於PHP的AWS開發工具包。 我已經使用'content-type'=>'image/jpeg'對其進行了測試。 我的系統還允許png和gif,那麼如果文件擴展名爲gif,我將如何使'內容類型'具有靈活性,然後我會將它製作爲image/gif,或者如果png將使它成爲image/png。 謝謝! – PinoyStackOverflower

+0

@ElsonSolano - 除了查看文件的擴展名,然後查找適當的'content-type',我不知道任何其他方法。 –

+0

我想通了。我只用$ _FILES ['type']。 輸出上傳文件的文件類型/擴展名。例如'image/jpeg'。所以我們可以輸入'content-type => $ _FILES ['type'] 無論如何,謝謝你的回答! :) – PinoyStackOverflower