2011-12-15 81 views
1

我試圖跟蹤iTunes中的MP3播客的下載。我創建了產生像URL簡單codeignitor網站:iTunes播客RSS PHP跟蹤 - 不下載

www.site.com/podcasts/download/[id].mp3

的腳本採用ID出來的URL,檢查它存在於DB - 獲取文件的URL,然後執行以下操作:

header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: Sat, 01 Jan 2011 01:01:01 GMT"); 
header('Content-type: audio/mpeg'); 
header('Content-Disposition: attachment; filename=episode'.$id.'.mp3"'); 
readfile($this->podcast_model->get_strPodcastFileName()); 

如果你打的網址在它的工作原理瀏覽器和文件開始下載,但把1個鏈接時到iTunes就開始說「下載0%「但不下載?

需要注意的一點是方法:$ this-> podcast_model-> get_strPodcastFileName()返回一個HTTP://鏈接,而不是指向服務器上文件的鏈接,同樣HTTP地址也不在同一個服務器作爲腳本。正如我上面所說的那樣,雖然這在通過瀏覽器下載文件時起作用。

有沒有人有任何想法?

感謝 詹姆斯

回答

1

我固定它通過而不是使用ReadFile的(...)我只是做了一個頭301重定向到URL這樣的:

header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://www.url_to_mp3_file/1.mp3"); 

一個爲別人誰點正在嘗試這一點。我建議你檢查一下數據庫中最近X分鐘內的以前的下載情況(我再次檢查IP地址,URL和時間戳),因爲一些MP3 /音頻播放器發出幾個請求來緩衝文件。

希望這會有所幫助。