面白いことに、私は 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
mp3 ファイルなどの実際のリンクを必要とする JavaScript やフラッシュ プレーヤー (JW プレーヤーなど) を使用している場合は、「&type=.mp3」というテキストを追加して、最終的なリンクが「www. example.com/xfer.php?file=34842ffjfjxfh&type=.mp3". そうすれば、ファイル リンクに影響を与えることなく、mp3 拡張子で終わるように見えます。