有趣的是,我在2天前为我的所有音乐写了一个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
如果您使用的是某些JavaScript或flash播放器(例如JW播放器),则需要mp3文件的实际链接或其他任何内容,则可以附加文本“&type=.mp3”,以便最终链接变为:“www.example.com/xfer.php?file=34842ffjfjxfh&type=.mp3”。这样,它看起来就像以mp3扩展名结尾,而不会影响文件链接。