在我的服务器上有一个存放音乐文件的目录,通常是。mp3格式。我正在编写一个web应用程序来搜索和播放这些曲目。
所有的文件都存储在MySQL数据库中,包括它们的绝对服务器路径,艺术家,专辑和标题信息。
我想做的是有一个PHP文件,在服务器上"输出"一个mp3文件,通常是无法从web访问的。所以,这就是我想要达到的效果:
客户端请求play.php?id = 10PHP从ID = 10的MySQL数据库获取绝对服务器路径PHP输出文件(实际上是在例如。"/home/user/文件/no_web/mp3/Thing.mp3")对于客户端,它看起来像有一个名为http://myserver.com/play.php?id=10的mp3文件,并开始播放。
我确信这种事情是可能的,只是不确定怎么做。提前感谢:)
您需要发送正确的content-type
标头,然后只输出文件:
header('Content-type: audio/mpeg3');
readfile('filename.mp3');
可以使用readfile函数来读取和发送文件。
设置mime类型,这样浏览器就知道web服务器发送的是什么类型的文件,使用header函数:
header('Content-Type: audio/mpeg');
另外,你可能还想设置HTTP报头的内容长度。
header('Content-Length: ' . filesize($filepath) );
如果您要做的只是让用户下载mp3,那么只需使用readfile
命令,它将读取mp3文件并将其传递给客户机。但是,您需要确保正确设置mime-type