-2

私のウェブサイトでは、ボタンがクリックされたときにユーザーが音楽ファイルをダウンロードできるようにしたいと考えています。私が経験している問題は、ボタンをクリックするとダウンロードが開始されますが、合計 4 MB のうち 506 KB しかダウンロードされず、開くとサポートされていない形式が表示されることです。この php ダウンロード スクリプトを html 形式で使用して、ダウンロードを行います。

HTMLフォーム

<FORM ACTION="download.php" METHOD=POST>
  <INPUT TYPE="hidden" NAME="music"    VALUE= "music/<? print $file; ?>"  >
  <INPUT TYPE="SUBMIT" NAME="download"  VALUE="Download">
</FORM>

PHP ダウンロード スクリプト

<?php
$FileName = $_POST["music"];
$FilePath = "music";
$size = filesize($FilePath . $FileName);
header("Content-Type: application/force-download; name=\"". $FileName ."\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ". $size ."");
header("Content-Disposition: attachment; filename=\"". $FileName ."\"");
header("Expires: 0");
header("Cache-Control: private");
header("Pragma: private");
echo (readfile($FilePath . $FileName));
?>

問題を教えてください。

4

1 に答える 1

1

あなたのコードは、次のような場所にあるファイルを探しています。

musicmusic/file.mp3

ファイルが実際に のようなものに格納されmusic/file.mp3、変数$fileに のようなものが含まれていると仮定すると、次のようfile.mp3に置き換えます。

<INPUT TYPE="hidden" NAME="music" VALUE= "music/<? print $file; ?>">

と:

<INPUT TYPE="hidden" NAME="music" VALUE= "<? print $file; ?>">

そして、これを置き換えます:

$FilePath = "music";

と:

$FilePath = "music/";

$FilePath(またはまったく削除)

また、誰かがサーバーからファイルをダウンロードできるようにする前に$_POST["music"]、含まれていないことを確認する..か、最初から始めることをお勧めします。/

于 2013-07-07T08:42:08.067 に答える