首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Zend Framework压缩3个小文本文件并强制下载

如何使用Zend Framework压缩3个小文本文件并强制下载
EN

Stack Overflow用户
提问于 2010-02-05 08:08:51
回答 2查看 2.8K关注 0票数 0

有没有Zend Framework方法可以保存来自3个文件的内容(无论它们是动态生成的还是实际存在的),并强制下载为文件?

类似于这个问题(尽管尝试了几种不同的方法,但到目前为止,从控制器内部运行时,这个问题对我来说不起作用):

PHP Zip 3 small text files and force download

EN

回答 2

Stack Overflow用户

发布于 2013-01-21 22:35:20

您可以像这样使用PHP ZIP库(需要预先安装):

代码语言:javascript
复制
$zip = new ZipArchive();
if($zip->open($filename, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE) !== true){
    throw new Exception('Could not create zip file ' . $filename);
    die('zip fail');
}else{
    $zip->addFile($file1Uri, 'file1.txt');
    $zip->addFile($file2Uri, 'file2.txt');
}

$zip->close();

if(file_exists($filename)){
    return true;            
}else{
    throw new Exception('Could not create zip file ' . $filename);
}

交付ZIP文件:

代码语言:javascript
复制
protected function _deliver($file, $name, $extension, $size, $mime){
    header('Pragma: private');
    header("Expires: -1");
    header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT'); 
    header("Cache-Control: no-cache");
    header("Content-Transfer-Encoding: binary");
    header("Content-Type: " . $mime);
    header("Content-Description: File Transfer"); 
    header('Content-Disposition: attachment; filename="' . $name . '.' . $extension . '"');
    header("Content-Length: " . $size);
    set_time_limit(0);        
    if(!readfile($file)){
        return false;
    }
}
票数 3
EN

Stack Overflow用户

发布于 2010-02-05 08:43:52

答案是你另一个问题上的答案。从控制器执行此操作,然后在输出压缩数据后调用exit,因此不要呈现视图。

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

https://stackoverflow.com/questions/2204184

复制
相关文章

相似问题

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