我在文件夹中有一些文件。我使用以下PHP代码将文件传输到浏览器(带标题)。
我以.7z格式下载正确长度的文件,但我无法解压缩。 如果我用ftp传输相同的文件,我可以解压缩它没有问题。 从我的服务器,我可以解决它没有问题。所以错误在php的某个地方
private function pushToBrowser($file){
if(!$file){ // file does not exist
die('file not found');
} else {
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
header("Content-length: ".filesize($file).";\n");
// read the file from disk
readfile($file);
}
}
代码
的用法$this->pushToBrowser($path);
答案 0 :(得分:1)
致电readfile($path)
之前ob_clean();
& flush();
所以最后你的代码应该是这样的:
private function pushToBrowser($file){
if(!$file){ // file does not exist
die('file not found');
} else {
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/x-7z-compressed");
header("Content-Transfer-Encoding: binary");
header("Content-length: ".filesize($file).";\n");
ob_clean();
flush();
// read the file from disk
readfile($file);
}
}
答案 1 :(得分:0)
要提供7个zip文件,您的内容类型应为 的
application/x-7z-compressed
强>
如果您同时提供7拉链和拉链zip或rar文件,然后您必须以编程方式将内容类型设置为浏览器。