有趣的是我两天前为我所有的音乐写了一个 php 媒体库。我有一个类似的问题。我正在为播放器使用http://musicplayer.sourceforge.net/ 。播放列表是通过 php 构建的。所有音乐请求都转到一个名为 xfer.php?file=WHATEVER 的脚本
$filename = base64_url_decode($_REQUEST['file']);
header("Cache-Control: public");
header('Content-disposition: attachment; filename='.basename($filename));
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));
// Put either file counting code here, either a db or static files
//
readfile($filename); //and spit the user the file
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_,', '+/='));
}
当您调用文件时,请使用以下内容:
function base64_url_encode($input) {
return strtr(base64_encode($input), '+/=', '-_,');
}
http://us.php.net/manual/en/function.base64-encode.php
如果您正在使用需要 mp3 文件或其他文件的实际链接的 JavaScript 或 Flash 播放器(例如 JW 播放器),您可以附加文本“&type=.mp3”,以便最终链接变为:“www.mp3”。 example.com/xfer.php?file=34842ffjfjxfh&type=.mp3"。这样看起来它以 mp3 扩展名结尾而不影响文件链接。