ファイルをダウンロードできるようにヘッダーをプッシュする PHP スクリプトがあります。このスクリプトは、ハイパーリンクまたはリンクを使用してブラウザを介して呼び出された場合に正常に機能します。これは次のようになります。
<a href="download.php?file=test.mp3&properFilename=Testing File">Download</a>
代わりにこれをボタン (sbumit) にしたいので、次のようにしました。
<form action="download.php?file=test.mp3&properFilename=Testing File" method="get">
<input type="submit" value="Download Audio" name="download"/>
</form>
ただし、これは機能しません。それをクリックすると。ダウンロード ダイアログ ボックスが表示されますが、ファイル名が空です。ファイル名は「.mp3」(引用符なし)として表示されます!ハイパーリンクを介した同じリンクには、正確なファイル名「Testing File」が表示されます。どうしてこれなの??関連するPHPスニペットは次のとおりです。
$filename = '../'.$_GET['file'];
$properFilename = $_GET['properFilename'].'.mp3';
header("Content-Disposition: attachment; filename=\"".basename($properFilename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();
助けてくれてありがとう。これは私を昼夜を問わず怒らせています!!!