首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Codeigniter下载帮助器损坏.7z和.rar文件帮助或替代解决方案?

Codeigniter下载帮助器损坏.7z和.rar文件帮助或替代解决方案?
EN

Stack Overflow用户
提问于 2013-05-08 20:38:13
回答 1查看 1K关注 0票数 2

我正在使用Codeigniter的下载助手进行“简单”下载。

代码语言:javascript
运行
复制
    $this->load->helper('download');
    $file = //get_file_name_from_db
    $data = file_get_contents( upload_path . $file);
    force_download($file, $data);

我遇到的问题是,.7z和.rar没有正确下载任何.zip。但是,当我检查上传的文件时,它们是否损坏,它们是否完好(通过FTP或通过简单地检查文件夹在本地)。

更令人困惑的是,如果文件非常小(比如5kb左右),那么所有类型(7z和rar)都不会损坏。

这里引用的是我在mime.php中使用的mime类型(上传和下载帮助器都使用)

代码语言:javascript
运行
复制
'zip'   =>  array('application/x-zip', 'application/zip', 'application/x-zip-compressed'),
'7z'    =>     array('application/x-7z-compressed','application/x-7z',      'application/7z', 'application/force-download', 'application/octet-stream'),
'rar'   =>  array('application/x-rar-compressed','application/x-rar', 'application/rar', 'application/octet-stream')

THe的问题可能出现在两个点上,要么是mime类型(正如前面提到的,它可能不是这样的,因为它在非常小的文件大小上工作)。或者file_get_contents()和报头(“Content-Length:".strlen($data));这可能不是这样,因为无论大小如何,.zip总是可以正确下载。

或者可能是服务器配置问题?我在主机和本地主机上测试了它,它们的行为是一样的。

那么,有没有人知道问题出在哪里,或者他们能不能给出一个我应该使用的替代下载脚本或方法?

更新:我在主机上上传了一个大小为1.8MB的7z文件,下载时文件没有损坏……我越来越难以理解问题出在哪里。

更新:

找到了答案,它是一个位于文件顶部的值,从某种连接的方法中,我回显了一个值,以便在一段时间前检查它。

有关更多信息,请访问:What causes downloaded files to become corrupt?

EN

回答 1

Stack Overflow用户

发布于 2013-05-09 02:15:04

我不认为PHP中有内置的库来生成像zip/gzip这样的7z或rar文件。你可能需要使用外部库,如果它在那里。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16440904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档