2011-10-19 57 views
4

我使用http://undesigned.org.za/2007/10/22/amazon-s3-php-class/documentation訪問使用php的私人文件。我可以通過說$ object-> body來獲取文件的數據。我實際上想要在瀏覽器中看到圖像或在視頻播放器中播放視頻。有沒有辦法做到這一點?readfile與二進制數據等效嗎?

我想我需要像readfile這樣的東西。問題是readfile是我需要文件的路徑。路徑是私人的,所以我不能使用它。有沒有辦法做二進制數據的讀文件?

我把這個在PHP的思想這將有助於但它仍然顯示二進制數據。

header('Content: image/jpeg'); 
header('Content-Disposition: inline; filename=IMAG0108.jpg'); 
echo $object->body; 

回答

1

您只需設置內容類型標題並將讀取文件輸出到瀏覽器。我所做的是創建一個新的php文件,如「showimage.php」,它接受一個I​​D或某些知道要顯示的圖像。然後我在瀏覽器頁面中使用它:。

在showimage.php,是這樣的:

<?php 
    header('Content-type: image/png'); 
    readfile('/var/images/' . $_GET['id'] . '.png'); 
    // or 
    // echo $object->body; 
?> 

這會從本地系統,並將其輸出爲圖像讀取的文件。關閉我的頭頂,所以我可能搞砸了那個代碼!

+1

你不應該'echo readfile'。返回類型是int。 – Pacerier

+0

true - readfile將輸出到緩衝區,不需要檢查返回值。 –

+0

編輯答案然後.... – Pacerier

0
header('Content: image/jpeg'); 
echo $object->body; 

應該工作正常(JPEG文件爲),你需要知道是什麼問題,文件類型,然後發送適當的內容頭。

+0

它仍然在瀏覽器中顯示二進制文件。 – user983223

+0

定義'二進制'...如果這不是圖像,你應該看到白色頁面/圖像。 –

+0

源代碼...這是第一行'ÿØÿálÔExifMM* HTCbjr(‡izRPC36100HH'; 0220'',0100-42011:04:19 21:21:382011:04:19 21:21:38ìdR980100¨(°kHHÿØÿÛ 「\t $。' – user983223