1

$path特定の変数 (ie: /var/recordings/file.mp3) のディスク上の mp3 ファイルを取得し、それをブラウザーに送信してメディア プレーヤーで再生できるスクリプトがあります。コードは次のとおりです。

//Send the media asset to the browser
header('Content-type: audio/mpeg');
header('Content-length: ' . filesize($path));
header('Content-Disposition: filename="recording.mp3"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
header("Content-Transfer-Encoding: binary"); 
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
print file_get_contents($path);

問題の mp3 ファイルを暗号化された形式で保存するため、問題のファイルを文字列に読み取り、暗号化クラスを使用して復号化します。この復号化されたファイルをファイルに出力せずにブラウザーに直接送信し、PHP にそのファイルの内容を読み取らせたいと思います。出来ますか?できるprint $decrypted_stringと思いますが、ファイルサイズを指定するにはどうすればよいですか?

4

1 に答える 1

2

まず復号化します。次に、関数のサイズを計算しstrlenます。その値をContent-Lengthヘッダー値として使用します。

$contents = file_get_contents($path);
$decrypted_string = decrypt_mp3($contents);
header('Content-length: ' . strlen($decrypted_string));
echo $decrypted_string;
于 2013-01-14T20:28:07.013 に答える