php
  • download
  • 2013-07-08 102 views 0 likes 
    0

    此腳本不斷返回「其他」響應。爲什麼我的病情不斷失敗:如何強制下載PHP?

    <?php 
    
        $fileName = $_GET['far_sighted_michael_pitluk.mp3']; 
        $fileDisplayName = "Far-Sighted"; 
    
        // Fetch the file info. 
        $filePath = 'http://michaelpitluk.com/audio/far_sighted_michael_pitluk.mp3'; 
    
        if(file_exists($filePath)) { 
         $fileName = basename($filePath); 
         $fileSize = filesize($filePath); 
    
         // Output headers. 
         header("Cache-Control: private"); 
         header("Content-Type: application/stream"); 
         header("Content-Length: ".$fileSize); 
         header("Content-Disposition: attachment; filename=".$fileDisplayName); 
    
         // Output file. 
         readfile ($filePath);     
         exit(); 
        } 
        else { 
         die('The provided file path is not valid.'); 
        } 
    ?> 
    

    我不明白路徑有什麼問題。

    +0

    是服務器上的MP3? – 2013-07-08 09:23:29

    +0

    '$ _GET ['far_sighted_michael_pitluk.mp3'];'你確定param是這樣命名的嗎?這很奇怪。 – Robert

    +0

    @Dagon是的。 [有遠見](http://michaelpitluk.com/audio/far_sighted_michael_pitluk.mp3)。 –

    回答

    0

    如果您$filePath開始與http://您可能需要啓用allow_url_fopenPHP Manual

    嘗試

    ini_set("allow-url-fopen", true); 
    // Fetch the file info. 
    $filePath = 'http://michaelpitluk.com/audio/far_sighted_michael_pitluk.mp3'; 
    

    編輯: 試試這個:

    <?php 
    
        $fileName = $_GET['far_sighted_michael_pitluk.mp3']; 
        $fileDisplayName = "Far-Sighted.mp3"; 
    
        // Fetch the file info. 
        $filePath = '../audio/far_sighted_michael_pitluk.mp3'; 
    
        if(file_exists($filePath)) { 
         $fileName = basename($filePath); 
         $fileSize = filesize($filePath); 
    
         // Output headers. 
         header("Cache-Control: private"); 
         header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3"); 
         header("Content-Length: ".$fileSize); 
         header("Content-Disposition: attachment; filename=".$fileDisplayName); 
    
         // Output file. 
         readfile ($filePath);     
         exit(); 
        } 
        else { 
         die('The provided file path is not valid.'); 
        } 
    ?> 
    
    +0

    不幸的是,這種情況仍然失敗。雖然,我不明白爲什麼。似乎它應該工作,任何想法? –

    +0

    @MichaelPitluk這隻有在文件可以從服務器以「URL」訪問時纔有效。從你之前的文章看來,這個文件在你的服務器上,你可能不需要這個。 – bansi

    +0

    就是這樣!真棒!你可以編輯你的答案,包括那個?所以我可以選擇它作爲答案?我不得不使用本地路徑並更改fileDisplayName –

    0

    fileexist()函數的路徑到您的文件你的主機,而不是一個完整的URL 上嘗試這個

    $filePath = 'audio/far_sighted_michael_pitluk.mp3'; 
    
    +0

    工作時,我使用「..audio/far_sighted_michael_pitluk.mp3」謝謝! –

    +0

    你能想到瀏覽器開始下載的任何原因,但該文件不是.mp3文件嗎?我的Mac只是告訴我,這是一個文件,當我打開它說,該應用程序無法找到。 –

    +0

    @MichaelPitluk'$ fileDisplayName =「有遠見」;'應該是'$ fileDisplayName =「遠Sighted.mp3」;' – bansi

    相關問題