我在使用apache服务器上的php下载文件时遇到了一些麻烦。当请求文件时,它会返回并下载,但是,当尝试打开文件时,它表示该文件可能包含无效字符。我尝试了php.net网站上的代码,仍然得到相同的响应。我的问题是我有什么不做或做错了吗?我的PHP代码如下。
//result is filename from db
if($result){
$row = $database->fetch_array($result);
$file_name = '../uploads/'.$row['filename'];
if(file_exists($file_name)){
header("Content-Disposition: attachment; filename=\"$file_name\"");
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
readfile($file_name);
}
}
答案 0 :(得分:0)
从manual for PHP header()开始,您可以指定最终用户的文件名以及服务器的相对路径。
尝试更改此行;
header("Content-Disposition: attachment; filename=\"$file_name\"");
要;
header("Content-Disposition: attachment; filename=\"$row['filename']\"");