1

曲のページと、各曲の横にダウンロード ボタンがあります。

<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 ファイルを投稿することにしました。しかし、それはばかげているようでした。

これを実現する良い方法はありますか?ありがとう!

4

1 に答える 1