2011-12-15 82 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 /音频播放器发出几个请求来缓冲文件。

希望这会有所帮助。