2

我看到这个教程来制作下载文件但我有问题
这是我的例子

$file_url = "D:/my file name.doc"

header('Content-Type: text/json; charset=UTF-8;');  
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($file_url)."");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file_url));
ob_clean();
flush();
readfile($file_url);

ie 或 chrome 中的一切都很好。但是当我firefox用来下载文件时。文件下载有my是文件名吗?怎么解决 谢谢

4

3 回答 3

2
header('Content-Disposition: attachment; filename="' .basename($file_url).'"');
于 2013-08-08T10:09:04.120 回答
1

你应该引用文件名。

header('Content-Disposition: attachment; filename="' . basename($file_url) . '"');

编辑:这是选定的答案,只是有错字。现在我修好了。

于 2013-08-08T10:04:59.880 回答
1

首先,您;在第一行的末尾丢失了。我认为问题出在带空格的文件名中。尝试使用readfile(urlencode($file_url));而不是readfile($file_url);

于 2013-08-08T10:05:13.370 回答