0

「transfer.php」というファイルは、ダウンロード用のファイルを提供する必要があります。ダウンロードの代わりに、元のファイルと同じファイルサイズの「.php」を持つファイルを提供します。ヘッダーを間違えましたか?

ありがとう!

<?php
session_start();

$path = $_SESSION['myvar'];

$mm_type = "application/octet-stream";

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: ".$mm_type);
header("Content-Length: ".(string)(filesize($path)) );
header("Content-Disposition: attachment; filename=".basename($path).'"');
header("Content-Transfer-Encoding: binary\n");

readfile($path); // outputs the content of the file

exit();
4

1 に答える 1

2

私は当初、処分ヘッダーの末尾の対になっていない引用符を削除することを提案しました..

ファイル名は引用符で囲む必要があります(ありがとう Wrikken!)。投稿されたコードでは、最初の引用符がありません。最初の文字列に使用'すると、ペアリング (または不足) がより明確になります。

header('Content-Disposition: attachment; filename="' . basename($path) . '"');
于 2013-10-15T17:48:20.470 に答える