使用PHP处理内存中的存档(无需在磁盘上创建临时文件)

使用PHP处理内存中的存档(无需在磁盘上创建临时文件),第1张

使用PHP处理内存中的存档(无需在磁盘上创建临时文件

我遇到了同样的问题,但最终找到了一个不太明显的解决方案,决定在这里分享。

我遇到了很棒的

zip.lib.php
/
unzip.lib.php
脚本,它们
phpmyadmin
都位于“库”目录中。

使用

zip.lib.php
对我来说是一种魅力:

require_once(LIBS_DIR . 'zip.lib.php');...//create the zip$zip = new zipfile();//add files to the zip, passing file contents, not actual files$zip->addFile($file_content, $file_name);...//prepare the proper content typeheader("Content-type: application/octet-stream");header("Content-Disposition: attachment; filename=my_archive.zip");header("Content-Description: Files of an applicant");//get the zip content and send it back to the browserecho $zip->file();

此脚本允许下载zip,而无需将文件作为真实文件或将zip本身保存为文件。

遗憾的是,此功能不是更通用的PHP库的一部分。

这是

zip.lib.php
phpmyadmin源文件的链接:
https://github.com/phpmyadmin/phpmyadmin/blob/RELEASE_4_5_5_1/libraries/zip.lib.php

更新: 确保从zip.lib.php开头删除以下检查,否则脚本将终止:

if (! defined('PHPMYADMIN')) {    exit;}

更新: 此代码在CodeIgniter项目上也可用:
https://github.com/patricksavalle/CodeIgniter/blob/439ac3a87a448ae6c2cbae0890c9f672efcae32d/system/helpers/zip_helper.php



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5122548.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存