2

私は以下のコードを使用してファイルをダウンロードしていますが、これはうまく機能しますが、ストレスの多いダウンロードの後でもファイル拡張子が見つからないという問題があります。他の MIME タイプに変更しようとしましたが、何が問題で、どうすれば解決できますか?

header('Content-Type: audio/mp3');
header("Content-Disposition: attachment; filename=$row[3]");
header("Content-Length: ".filesize("$row[1]$row[2]"));
$fp = fopen("$row[1]$row[2]", "r");
fpassthru($fp);
fclose($fp);

注: $row 配列の値は問題ありません。

4

3 に答える 3

6

ここでは暗闇の中でのショットですが、ファイル名にスペースが含まれている可能性がありますか? その場合、ファイル名を二重引用符で囲んでみてください。スペースが省略された後の部分に関する報告があります (例: http://kb.mozillazine.org/Filenames_with_spaces_are_truncated_upon_download ) 。

編集:コメントで説明したように、ヘッダーは拡張子を返さなかったため、.mp3 拡張子をバックエンドに手動で追加すると、この問題が解決します。

于 2013-04-14T21:01:40.303 に答える
0

次のように、ファイル名の周りにエスケープされた引用符を追加してみてください。

header("Content-Disposition: attachment; filename=\"$row[3]\"");
于 2013-04-14T20:59:59.570 に答える