我一直在使用PHP脚本将数据从我的数据库(mysql)导出到XLS文件。
虽然文件导出过程在Firefox和IE上正常运行。
尝试使用Google Chrome导出时出错。
Google Chrome错误
Duplicate headers received from server
The response from the server contained duplicate headers. This problem is generally the result of a misconfigured website or proxy. Only the website or proxy administrator can fix this issue.
Error 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): Multiple distinct Content-Disposition headers received. This is disallowed to protect against HTTP response splitting attacks.
我需要一些帮助。
由于
答案 0 :(得分:11)
我已经在PHP导出代码的标题部分找到了我的问题。错误和正确的行如下:
不正确
header("Content-Disposition: attachment;filename=\"".$this->filename."\"");
正确
header("Content-Disposition: attachment; filename=\"".$this->filename."\"");
更正是在附件; 和文件名之间添加空格
希望这有帮助。
答案 1 :(得分:8)
我有同样的问题。但是很少出现。原因相似但不完全相同。
不正确的
header("Content-Disposition: attachment; filename=$filename");
正确
header("Content-Disposition: attachment; filename=\"$filename\"");
$ filename有时会包含空格,导致提及Chrome错误。
答案 2 :(得分:1)
我也遇到了同样的问题。在下载名称中包含逗号的文件时,它会说“收到重复的标题”并且它仅在Chrome中。在Firefox中没关系。之后我只是改变了我的代码
header("Content-Disposition: attachment; filename=$myfilename");
来
header("Content-Disposition: attachment; filename=\"$myfilename\"");
它工作得很好。希望它对你有用。
答案 3 :(得分:0)
尝试一下可能会帮助您, header('Content-Disposition:附件; filename = “'。$ file_name。'”');
代替
header('Content-Disposition:附件; filename ='。$ file_name);