我正在尝试在iTunes中跟踪MP3播客的下载情况。我已经创建了一个简单的codeignitor站点,它生成URLS,如下所示:
Www.site.com/podcast/download/id.mp3
该脚本从URL中取出ID,检查它是否存在于数据库中-获取文件的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()); 如果你在浏览器中点击网址,它会工作,文件开始下载,但当将一个链接放入iTunes时,它开始显示“正在下载0%”,但没有下载?
需要注意的一点是方法:$this->podcast_model->get_strPodcastFileName()返回一个HTTP://链接,而不是指向服务器上文件的链接,而且HTTP地址与脚本不在同一服务器上。虽然这是工作时,通过浏览器下载文件,如我上面所说的。
有谁有什么想法吗?
谢谢詹姆斯
发布于 2011-12-16 05:07:12
我修复了它,而不是使用readfile(...)我简单地做了一个头301重定向到URL,如下所示:
header("HTTP/1.1 301 Moved Permanently" );
header("Location: http://www.url_to_mp3_file/1.mp3"); 对于其他正在尝试这一点的人来说,有一点值得注意。我建议你在过去X分钟内检查一下之前下载的文件的数据库(我再检查一遍IP地址、URL和时间戳),因为一些MP3/音频播放器会发出几个缓冲文件的请求。
希望这能有所帮助。
https://stackoverflow.com/questions/8517049
复制相似问题