2012-05-16 151 views
0

我開發一個代碼從服務器下載MP3文件。該代碼在舊服務器中工作,但不適用於新服務器。它顯示了0字節,當我嘗試下載一個精細在php下載文件不起作用

我發送通過HTTP POST methos下載鏈接

www.example.com/download.php?dlink=http://www.example.com/音樂/ sample.mp3

這是我事先用

ob_start(); 
    if(isset($_REQUEST['dlink'])) 
    { 
     $file = $_REQUEST['dlink']; 
     header('Content-Description: File Transfer'); 
     header('Content-Type: application/octet-stream'); 
     header('Content-Disposition: attachment; filename='.basename($file)); 
     header('Content-Transfer-Encoding: binary'); 
     header('Expires: 0'); 
     header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
     header('Pragma: public'); 
     header('Content-Length: ' . filesize($file)); 
     ob_clean(); 
     flush(); 
     readfile($file); 
     exit; 
    } 
ob_flush(); 

感謝代碼

+0

什麼是$文件這裏讀取文件($文件)? – Venu

+0

$ file = $ _REQUEST ['dlink']; 我錯過了這一行,現在我添加了..請看看這個問題.... –

+0

你想輸出文件,這是要獲取另一臺服務器?或者是位於該服務器中的文件? – Venu

回答

0

你不應該傳遞的絕對URL的參數DLINK,你無法讀取遠程SERV文件呃。

使用此URL www.example.com/download.php?dlink=music/sample.mp3

假設在根目錄下的可執行文件。

+0

感謝它工作正常..但相同的代碼是通過傳遞絕對網址在另一臺服務器上工作...多數民衆贊成在這個問..這一切都謝謝先生 –

+0

關閉這張票如果你的問題通過接受這個答案解決 – Venu