我有一些私人音乐文件的集合,我不想让人们很难链接,所以我创建了一个基于访问令牌的系统,以允许一个人使用的应用场景,这个应用场景必须由人类根据请求产生。这只是确保正在播放的音乐不会被链接。我在使用PHP播放MP3文件时遇到问题;它从硬链接的MP3完美地工作。
我复制了用于PHP脚本的普通MP3文件的头文件,该文件应该用于播放私人文件,但是在歌曲的大约一半时候,它会被检测为无效文件,或者浏览器无法访问其他文件这首歌。
下面的标题是我正在使用通过PHP使用readfile()来正确传输一个MP3文件吗?如果不是,我应该如何纠正这个脚本?我已经尝试了大部分其他问题的堆栈溢出问题的答案,但我没有成功。
这些是MP3文件和PHP脚本的标题:
HTTP/1.1 200 OK
Date: Fri, 03 Aug 2012 19:23:06 GMT
Server: Apache/2.2.22 (Ubuntu)
Last-Modified: Sat, 28 Jul 2012 23:45:21 GMT
ETag: "b7b58-7cd356-4c5ec6bf4c640"
Accept-Ranges: bytes
Content-Length: 8180566
Content-Type: audio/mpeg这是我写的脚本:
$file = "/var/private/music/musicfile.mp3";
header_remove();
header("Last-Modified: Sat, 28 Jul 2012 23:45:21 GMT");
header("ETag: \"b7b58-7cd356-4c5ec6bf4c640\"");
header("Accept-Ranges: bytes");
header("Content-Length: ".filesize($file));
header("Content-Type: audio/mpeg");
readfile($file);
?>我究竟做错了什么?