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 回答