gpt4 book ai didi

php 头文件传输损坏

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:50:11 25 4
gpt4 key购买 nike

我的文件夹中有一些文件。我使用以下 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);

最佳答案

在你调用 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);
}
}

关于php 头文件传输损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32375906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com