首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP on the fly ZIP下载为空白

PHP on the fly ZIP下载为空白
EN

Stack Overflow用户
提问于 2011-12-12 19:58:18
回答 2查看 1.2K关注 0票数 1

似乎我成功地创建了一个动态压缩文件(filesize和file_exists都返回了预期值),但是当我尝试实际下载它时,我收到了一个空的压缩文件。奇怪的是,这个错误在readfile和fread中都会发生。这是我的代码

代码语言:javascript
复制
$filename = $zip;
    $handle = fopen($filename, 'r');
    if ($handle === false)
    {
        die('Could not read file "' . $filename . '"');
    }

    header('Content-type: application/zip');
    header('Content-Disposition: attachment; filename="fsdownload.zip"');
    header('Cache-Control: private');
    while (!feof($handle))
    {
        echo fread($handle, 8192);
    }
    fclose($handle);

这对于小于10MB的zip-Files很好地工作。有没有想过问题可能是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-12 20:57:14

为了避免消耗太多内存,您可以使用或,它们会将压缩文件分成块动态发送到浏览器,而不是在PHP中加载整个内容,然后发送压缩文件。

这两个库都是很好的、有用的代码。以下是一些细节:

  • 只适用于内存,但在必要时不能很容易地移植到PHP4(使用hash_file())
  • 在磁盘上写入临时文件(消耗的磁盘空间与添加到zip中的最大文件一样多),但如果需要,可以很容易地适应PHP4。

相关SO问题:

票数 1
EN

Stack Overflow用户

发布于 2011-12-12 20:01:41

问题在于PHP的限制。检查内存和执行时间限制。

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

https://stackoverflow.com/questions/8473948

复制
相关文章

相似问题

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