如何使用 php 将文件添加到 ziparchive 中新创建的文件夹中?

2023-12-02

enter image description here

如上图所示,我有组织在虚拟文件夹中的图像(在 mysql 数据库中,但不是真实文件夹中)。我需要使所选文件夹可供使用下载为 zip 文件.我能够压缩图像,但是我们如何添加子目录以便向其中添加图像(我尝试使用addEmptyDir()但无法找到向其中添加图像的方法! )。 如果不创建物理文件夹,这真的可能吗?

请建议!


感谢@dnagirl 的回答,但我实际上正在寻找一种在子文件夹中添加文件的方法(也许我无法说清楚!)

发现如果我们给出 ' zipArchive 会自动创建文件夹path/to/filename' 而不仅仅是 'filename'

这就是我实现它的方法,以防有人需要它!

function zipFilesAndDownload($file_names,$archive_file_name,$img_localpath)
{
  $folder_path=WSP_AK_PLUGIN_DIR ."akTempFolder/";
  $zip = new ZipArchive();
  if ($zip->open($folder_path.$archive_file_name, ZIPARCHIVE::CREATE )===TRUE) {
    //$zip->addEmptyDir('myimages');(this was what i thought would create folder!)
    foreach($file_names as $files)
    {
        //$zip->addFile($img_localpath.'/'.$files, 'myfolder/'.$files);
        $zip->addFile($img_localpath.'/'.$files['fileName'],    $files['folder_path'].$files['fileName']);
    }
    $zip->close();

在上面的代码中$files['folder_path']将给出将在其中创建文件的路径,例如folder1/folder2/image1.jpg

    header("Content-type: application/zip"); 
    header("Content-Disposition: attachment; filename=$archive_file_name");
    header('Content-Type: application/force-download');
    header('Content-Length: ' . filesize($folder_path.$archive_file_name));
    header("Pragma: no-cache"); 
    header("Expires: 0");
    if( file_exists($folder_path.$archive_file_name)) {
        ob_clean();
        readfile($folder_path.$archive_file_name);
    }
    unlink($folder_path.$archive_file_name);
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 php 将文件添加到 ziparchive 中新创建的文件夹中? 的相关文章

  • symfony2 选择单选框的默认值

    我的项目是使用 Silex 和 Symfony 组件 即表单组件 编写的 我尝试创建一组从类中构建的单选按钮 并且我想预先选择其中一个单选按钮 我创建这样的表格 form app form factory gt createBuilder
  • HTML 表单 POST 到 PHP 页面 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 好的 我创
  • 未捕获的 ValueError:mysqli_stmt::execute():参数 #1 ($params) 必须是列表数组

    我试图通过这两个查询在我的数据库中插入准备好的语句多个值 这两个查询都发生故障 返回 未捕获的错误 调用未定义的方法 mysqli stmt bindValue 对于第一个代码或 未捕获的 ValueError mysqli stmt ex
  • 计算两个数字之间的差异

    我想计算两个给定数字之间的差异 例如 1 5 或 24 35 我必须将数组中的数字分开并写出它们之间的差异 如下所示 1 2 3 4 5 或 24 25 26 27 28 29 30 31 32 33 34 35 是否有任何 php 函数可
  • 如何为 Lumen 的封闭路线指定路线名称?

    您好 我有以下流明路线 router gt get end function Illuminate Http Request request use router controller router gt app gt make App H
  • Instagram 如何使用 Amazon S3?

    在将文件上传到 Amazon S3 时 我需要深入了解 Instagram 的工程 我刚刚开始使用 S3 我认为 Instagram 是一个值得效仿的好模式 因为他们每天上传数千张图片 我的应用程序有点相似 用户上传图片 可以删除自己的图片
  • PHP/MySQL:检索邻接列表模型中的单个路径

    有没有什么有效的方法可以在不限制深度的情况下根据节点的ID检索邻接列表模型中的单个路径 就像如果我有一个名为 Banana 的节点的 ID 我可以获得以下路径 Food gt Fruits gt Banana 如果不可能的话也不是什么大问题
  • mongodb对话系统

    我正在实施一个verymongodb 上的简单对话系统 这个想法应该是 当我打开一个 convo 时 它应该显示发送和接收的消息 到目前为止一切正常 并且应该非常容易 通过使用像这样的伪代码这样的简单查询 from my id AND to
  • 如何从字符串中只获取数字? [复制]

    这个问题在这里已经有答案了 我有这样的字符串 第 001 课 完成 在这种情况下 我只想获取数字部分001 我试过这个 str the title preg match all d str matches number implode ma
  • jQuery和PHP中如何知道返回数据是Json还是String?

    我想在客户端 jQuery 检查 PHP 函数返回的数据是否是 Json 对象或 String 来分配不同的函数 如果 json 的格式不正确 jQuery 的 parseJson 将生成异常 您可以将调用包装在 try catch 块中
  • WooCommerce:用文本覆盖购物车价格

    我们有很多产品具有以下功能 No price 零价格 我们让它们可以通过内置挂钩购买 但购物车仍然将它们显示为具有0 price结账时 我们希望购物车和结帐摘要显示 特殊订单 或任何其他文本 但 WooCommerce 似乎使基于文本的价格
  • WAMP 不显示目录列表中的图标

    过去 我通过 vmware 处理 PHP 代码 但最近我决定转而通过 WAMP 在 Windows 8 1 上 在本地进行处理 我创建了一个空文件夹tests in the www folder 然后在我的浏览器上输入http localh
  • cURL '格式错误的网址'

    This url 在浏览器中工作得很好 但 cURL 返回错误 3 格式错误的 url 关于解决方法有什么想法吗 EDIT 卷曲代码 function get web page url options array CURLOPT RETUR
  • 将秒转换为天、小时、分钟和秒

    我想转换一个变量 uptime这是秒 分为天 小时 分钟和秒 Example uptime 1640467 结果应该是 18 days 23 hours 41 minutes 这可以通过以下方式实现DateTime http php net
  • 在 MySQL 中搜索多个单词

    我使用 HTML 表单来允许用户查找数据库表中的条目
  • 解析 PHP 响应:未捕获的语法错误:意外的标记 <

    我正在使用 AJAX 来调用 PHP 脚本 我唯一需要从响应中解析的是脚本生成的随机 ID 问题是 PHP 脚本会引发许多错误 这些错误实际上很好 不会妨碍程序功能 唯一的问题是当我跑步时 parseJSON response I get
  • 转换MAC地址格式

    我刚刚编写了一个小脚本 从交换机中提取数百个 MAC 地址进行比较 但它们的格式为 0025 9073 3014 而不是标准的 00 25 90 73 30 14 我对如何转换它感到困惑 我能想到的最好的办法就是在 处将它们分解成碎片 然后
  • sqlsrv_num_rows 不返回任何值

    我正在尝试获取查询中返回的行数 while 循环遍历结果有效 但由于某种原因 sqlsrv num rows 不返回任何值 result SELECT from dtable WHERE id2 apple query sqlsrv que
  • 如何显示不同页眉的页面? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在为我的学校项目开发网站 但我遇到了一个问题 我在每个页面上显示一个标题 我的标题之一包含登录表单 另一标题包含用户名 搜索栏等 问题是
  • Laravel 5 注销特定用户

    在我的 laravel 5 应用程序中 有一个功能允许具有管理员角色的用户重置非管理员的任何人的密码 但这不会强制该人注销并再次登录 更改密码后如何强制用户注销 我没有对用于验证用户身份或任何内容的中间件进行任何更改 我不知道它是否有效 但

随机推荐

  • 在 Android 中添加 Layer 库依赖项会抑制 requestPermissions 对话框

    我制作了一个非常非常小的演示应用程序 在运行 Android 版本 6 0 1 的 Nexus 5 上重现该错误 该应用程序位于 github 上 https github com lexi sr LayerPermission 我最近添加
  • 执行矩阵的成对比较

    我有一个由 n 个变量组成的矩阵 我想创建一个新矩阵 它是每个向量的成对差异 但不是其本身 这是数据的示例 Transportation services Recreational goods and vehicles Recreation
  • 使用 RecyclerView 可以扩展列表吗?

    可以将可扩展列表项与新的 RecyclerView 一起使用吗 喜欢 ExpandableListView 吗 使用库存布局管理器可以很简单地做到这一点 这完全取决于您如何管理适配器 当您想要扩展某个部分时 只需在标题之后将新项目添加到适配
  • GCM 注册时出现 INVALID_SENDER 错误

    我正在开发应用程序 我想在其中实现推送通知 因为我正在使用 GCM 我已在 google console 上注册了我的项目 并使用项目 ID 作为 GCM 注册的 senderID GCMRegistrar checkDevice this
  • Android 的基本组件的类加载和_java对象_生命周期

    虽然从 API 角度来看 关于应用程序 活动等生命周期的资源有无数 onCreate Destroy Whatnot 方法 几乎没有任何关于这些组件的实际对象生命周期的信息从Java的角度来看 例如 我 在 YouTube marakana
  • 使 Adob​​e 字体在 IE9 中与 CSS3 @font-face 配合使用

    我正在构建一个小型 Intranet 应用程序 并尝试使用 但没有运气Adobe字体我最近购买了 据我所知 在我们的案例中 这并不违反许可证 我将 ttf otf 版本的字体转换为 woff eot 和 svg 以便针对所有主要浏览器 我使
  • 如何动态更改 JXTreeTable 中特定单元格的颜色

    我在用JXTreeTable现在为了制作树表结构 我想动态更改特定单元格的颜色 如何改变单元格的颜色 我发现这段代码可以改变颜色 但这不起作用 这是代码 leftTree setDefaultRenderer Object class ne
  • 在Python中获取或构建PEM证书链

    是否可以使用 ssl 和 Python 获取 PEM 格式的整个证书链 我可以通过以下方式获得具体的 import ssl addr 192 0 2 1 cert str ssl get server certificate addr 44
  • Python - TypeError:listen() 缺少 1 个必需的位置参数:'self'

    我一直在 PyCharm 中开发 AI 但我似乎在尝试调用方法来尝试获取音频输入时遇到了 voice recognition 错误 Users waynedeng Desktop AI venv bin python Users wayne
  • 如何将新的用户控件添加到工具箱或新的 Winform?

    我有一个现有的库 不是 Winforms 应用程序 它为真正的 Windows 应用程序提供一些 Winforms 在这个库中 我想创建一个用户控件来将一些控件分组在一起 为了实现这一目标 我右键单击 添加 用户控制并将一些控件拖到新的用户
  • 在 Sublime Text 构建系统中使用自定义变量

    我正在 macOS 上配置 Sublime Text ST 构建系统 我想创建一个构建系统变体 将构建产品输出到我的用户库中的文件夹 但我找不到解决该目录的方法 The ST 构建系统文档提到构建系统变量的可用性 但它们都不允许我寻址我的主
  • 集合视图,具有自定义布局,单元格在滚动时行为异常

    我正在尝试使用 UICollectionView 创建自定义平铺布局 一旦我运行我的应用程序 它就会在模拟器中完美呈现 但是当我滚动视图并将其带回时 所有单元格的框架都会发生变化 并且单元格会重叠 随机留下空格 过去两天我无法解决这个问题
  • 如何在“CollectionEditor”对话框中启用属性的默认值

    请先阅读整个问题以理解where我将能够重置属性的默认值 当定义一个可以可视化设计的自定义类时 可以实现一个集合编辑器来修改列表 数组 集合等属性 使用以下模式 Editor typeof CollectionEditor typeof U
  • 使用 Microsoft Jet OLEDB 的 CSV 列限制

    我正在从包含大约 350 列的 CSV 导入数据 这个 CSV 导入是固定的 我完全无法控制它 如果我尝试在 Excel 2003 中打开 CSV 由于列限制为 255 IV 它只能部分加载 当我使用 OleDb 和 Microsoft J
  • Python 挑战字符串编码

    我有以下提供者列表 俄语 providers u u041e u041e u041e u041a u0432 u0430 u0440 u0442 u0430 u043b u041b u0435 u043e u043f u043e u043b
  • 如何在 Spring.NET 中配置静态类的属性?

    如何通过 Spring NET 配置静态类 考虑下面的类 static class Abc public Interface xyz get set public void Show xyz show 也许解决方法可以帮助 这不是一个静态类
  • OpenCV imwrite 函数导致“未定义符号”

    我正在开发一个软件 它由一些带有 python 绑定的核心 C 代码组成 C 代码已经使用了大量 OpenCV 但现在我试图在两者之间保存图像 但我似乎无法使用imwrite功能 将其添加到 main cpp 中并使用 默认 构建在 ecl
  • 如何使用表单名称作为字符串创建新的表单实例

    使用表单名称创建封闭表单的新表单实例的代码 我想用变量替换长的选择案例列表 模块完整代码 在 Access 2010 中 我有一个 VBA 函数 当给定包含表单名称的字符串时 该函数会打开表单的新实例 通过将表单变量 frm 添加到集合中
  • 图片在浏览器中显示为垃圾字符

    谁能告诉我为什么当我尝试通过浏览器访问图像 URL 时 它显示一堆内容类型为文本 纯文本的垃圾字符 eg https www domainname com client image name jpg显示如下 3 1AQa q2 B R b3
  • 如何使用 php 将文件添加到 ziparchive 中新创建的文件夹中?

    如上图所示 我有组织在虚拟文件夹中的图像 在 mysql 数据库中 但不是真实文件夹中 我需要使所选文件夹可供使用下载为 zip 文件 我能够压缩图像 但是我们如何添加子目录以便向其中添加图像 我尝试使用addEmptyDir 但无法找到向