曲のページと、各曲の横にダウンロード ボタンがあります。
<table>
<tr>
<td>Off the Grid</td>
<td><a href="http://example.com/php/download.php?Off_the_Grid.mp3">Download</a></td>
</tr>
<tr>
<td>Far-Sighted</td>
<td><a href="http://example.com/php/download.php?Far_Sighted.mp3">Download</a></td>
</tr>
</table>
次に、ダウンロードを強制する次のスクリプトがあります。
<?php
$audioFile = "Off_the_Grid.mp3";
$fileName = $_GET['$audioFile'];
// Fetch the file info.
$filePath = '../audio/' . $audioFile;
if(file_exists($filePath)) {
$fileName = basename($filePath);
$fileSize = filesize($filePath);
// Output headers.
header("Cache-Control: private");
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
header("Content-Length: ".$fileSize);
header("Content-Disposition: attachment; filename=".$fileName);
// Output file.
readfile ($filePath);
exit();
}
else {
die('The provided file path is not valid.');
}
?>
私の目標は、このスクリプトを関数に変換して、曲のダウンロード リンクがクリックされたときに (たとえば、"Far-Sighted")、"Far-Sighted" および "Far-Sighted" のみが強制的にダウンロードされるようにすることです。代わりに「Off the Grid」のダウンロード リンクをクリックすると、「Off the Grid」の機能が実行されます。私が投稿するすべての曲についてなど。
上記のコードは、「Off the Grid」のダウンロードを強制する限り機能します。しかし、クリックされた曲のダウンロードを強制するようにしようとしています。現在、「Far-Sighted」の横にある「Download」をクリックすると、投稿したコードによると、「Off the Grid」がダウンロードされ、「Far-Sighted」はダウンロードされません。明らかに、「Far-Sighted」をダウンロードする必要があります。しかし、私は立ち往生しています:-/
これをきれいに行う方法はありますか?私はこれを簡潔な無駄にする方法を考えようとしました。クリックした曲のダウンロード リンクに応じて、変数 "$audiofile" の値が変わるようにする方法はありますか? 曲ごとに php ファイルを作成し、そこにその曲に固有のスクリプトを投稿するか、各曲に合わせたスクリプトのインスタンスをいくつか含む 1 つの php ファイルを投稿することにしました。しかし、それはばかげているようでした。
これを実現する良い方法はありますか?ありがとう!