我想我必须打破并寻求帮助。 (应该在3天前完成!)
发生了什么......
代码:
holdit($filename,$suggname);
function holdit($filename,$suggname) {
$fp=@fopen($filename, 'rb');
if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) {
header('Content-Type: "application/octet-stream"');
header('Content-Disposition: attachment; filename="'.$suggname.'"' );
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-Transfer-Encoding: binary");
header('Pragma: public');
header("Content-Length: ".filesize($filename));
} else {
header('Content-Type: "application/octet-stream"');
header('Content-Disposition: attachment; filename="'.$suggname.'"' );
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Pragma: no-cache');
header("Content-Length: ".filesize($filename));
}
fpassthru($fp);
fclose($fp);
jump();
}
function jump() {
header('Location: return_from_csv.php');
}
答案 0 :(得分:0)
您正在为HTTP响应添加大量标头。其中一个是Location
,它指示浏览器重定向。显然,它将其解释为比其他标题更高的优先级。
决定是否要在回复中重定向或提供文件并执行其中一项操作。
我怀疑你误解了Location
标题。阅读:http://en.wikipedia.org/wiki/HTTP_location
根据您尝试提供CSV文件的内容,然后重定向到另一个页面。对不起,你不能这样做。 HTTP响应只做一件事而且只做一件事。您可以考虑使用target
<a>
属性在另一个窗口中打开指向CSV文件的链接。