2013-01-04 21 views
0

我有上傳在遠程服務器上的示例文件,三種類型的文件:圖像,視頻,音頻。視頻和音頻嵌入文件不會流式傳輸,但下載工作。 (圖片也工作)

我在本地頁面上通過cURL訪問它們並強制下載。

一個問題是,圖像<img src="?image" />工作,但嵌入音頻和視頻文件沒有。爲了測試目的,我使用嵌入代碼,並且這樣的嵌入框架足夠了。

這是我的PHP文件test.php的

<?php 
function download($url) 
{ 
    set_time_limit(0); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    $r = curl_exec($ch); 
    curl_close($ch); 
    header('Expires: 0'); // no cache 
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT'); 
    header('Cache-Control: private', false); 
    header('Content-Type: application/force-download'); 
    header('Content-Disposition: attachment; filename="' . basename($url) . '"'); 
    header('Content-Transfer-Encoding: binary'); 
    header('Content-Length: ' . strlen($r)); // provide file size 
    header('Connection: close'); 
    echo $r; 
    exit; 
} 

if (isset($_GET['image'])) 
{ 
    $file = 'https://googledrive.com/host/0B_3oJnpnNoF9UjlkVUwtWE5CY0U/city.jpg'; 
    download($file); 
} 

if (isset($_GET['music'])) 
{ 
    $file = 'https://googledrive.com/host/0B_3oJnpnNoF9UjlkVUwtWE5CY0U/horse.mp3'; 
    download($file); 
} 

if (isset($_GET['video'])) 
{ 
    $file = 'https://googledrive.com/host/0B_3oJnpnNoF9UjlkVUwtWE5CY0U/mov_bbb.mp4'; 
    download($file); 
} 

?> 

<img src="http://localhost/test.php?image" /> 

<br /> 

<audio controls height="100" width="100"> 
    <source src="http://localhost/test.php?music" type="audio/mpeg"> 
    <embed height="50" width="100" src="http://localhost/test.php?music"> 
</audio> 

<br /> 

<video width="320" height="240" controls> 
    <source src="http://localhost/test.php?video" type="video/mp4"> 
    <object data="http://localhost/test.php?video" width="320" height="240"> 
    </object> 
</video> 

如果我去一個鏈接http://localhost/test.php?musichttp://localhost/test.php?video下載雖然開始,所以我的意思是這是工作文件(鏈接不下來)。

我的問題是我無法通過這種方式流式傳輸音頻和視頻文件,而且我需要對此代碼進行一些修改。

謝謝。

+1

你有沒有嘗試改變你的標題適當的標題爲音樂和視頻?即'標題內容類型音頻'。 –

回答

0

也許是因爲您爲文件設置了錯誤的標題?你迫使他們下載,而你想要顯示它們...