问题标签 [ziparchive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1151 浏览

php - 当 .zip >= 4GB 时,PHP 的原生 ZipArchive 类会失败。怎么修?

PHP 5.3+ 的本机 ZipArchive 类 ( http://php.net/ziparchive ) 会创建损坏的结果文件 (.zip),但仅当结果 .zip 大于 ~4GB 时(我认为是 3,6 GB。服务器是Ubuntu 10.10 64 位,4GB RAM,最新 PHP 5.3)。错误(使用您使用的任何软件解压缩此 .zip 时)是:

根据网上的几篇帖子,这只是这个类/ zip 函数的(未记录的)最大限制。我的问题是:如何解决这个问题,又快又脏?是否有一些可能的 php.ini 或服务器设置?或者其他一些在本机 ubuntu 系统上创建 4GB+ .zip 文件的方法?我没有 root 访问权限,无法安装新软件包。

在 Java 上有一些类似的问答: 使用 Java 压缩文件:有限制吗?

0 投票
3 回答
3913 浏览

php - 字符串到 php 中的压缩流

我有一个带有我的数据库的处理服务器和一个服务数据库,以低带宽成本提供文件。在处理服务器上,php 无法创建文件,因此在发送到另一台服务器进行下载之前,必须使用流完成所有操作和/或保留在内存中。几天前,我发现了关于 'php://memory' 的流抽象,我可以做类似的事情

在内存中制作文件,然后允许我将其通过 ftp 传输到我的另一台服务器。这正是我想要的,除了我还想在发送数据之前压缩数据——最好只使用 php 的本机部分,如 ziparchive,而不是额外的自定义类来进行特殊的流操作。我知道我与以下内容非常接近...

失败的地方是对 getStream 的调用(尽管我认为我使用正确,但它总是返回 false)。似乎 zip 可以很好地在 'php://memory' 中制作文件,但由于某种原因 getStream 仍然失败,尽管我可能不太了解 ZipArchive 是如何制作 zip 的......

如何从字符串转到压缩文件指针,以便将 zip 文件通过 ftp 传输到其他服务器?请记住,我不能制作任何文件,否则我只会制作 zip 文件,然后将其 ftp 传输过来。

编辑:根据下面skinnynerd的建议,我尝试了以下

这确实会创建一个 zip 并将其发送过去,但 zip 的大小为 0 字节,因此我认为 'php://memory' 的工作方式与我想象的不同……它实际上在最后一步失败了——$zip ->close() 返回 false,这让我想知道我是否可以将 zips 打开到 'php://memory' 中。有谁知道我可以沿着这条线尝试什么来获得拉链?

0 投票
1 回答
984 浏览

php - 使用 PHP ZipArchive 将 zip 解压到特定目录

我一直无法弄清楚是否有办法使用 php.ini 将 zip 解压缩到特定目录中。使用代码时,例如

它会将 zip 解压缩到目录“files”,并将所有文件放在与 zip 名称匹配的目录中。我不希望上传方能够决定要上传到的目录的名称。例如,如果我在提取时上传了一个名为“zip.pdf”的 zip,其中包含“myimg.jpg”,它的位置将变为:

我希望它在哪里

无论如何,我想知道是否有办法让 ZipArchive 不创建一个新目录来存放解压缩的内容,或者我是否必须遍历所有解压缩文件并在解压缩完成后移动它们。

0 投票
2 回答
3297 浏览

php - ZipArchive - 提取文件夹

我允许用户在我的网站上上传 ZIP 档案中的投资组合。

问题是大多数档案具有以下文件夹结构:

有什么方法可以简单地将文件(而不是目录)放到我的网站上(所以他们的投资组合的文件夹结构就是这样)

它目前像这样上传它们:

这会产生各种问题!

我试过这样做:

无济于事。

0 投票
1 回答
5819 浏览

objective-c - NSOpenPanel 在 Objective-C 中获取文件名?

当我创建一个 NSOpenPanel 时,如下所示:

当我登录时fileName,它是正确的并打印我的文件完整目录,但是当我尝试将它与我的 void 一起使用时,它变得像超级奇怪的字母,就像 ÿ^0f 完全随机。为什么?

0 投票
2 回答
5992 浏览

iphone - 单元测试中的“架构 i386 的未定义符号”

只有当我尝试构建 iPhone 静态库的单元测试时,我才会收到以下错误:

构建原始项目工作正常。

我能错过什么?

需要注意的是,ZipArchive是一个.mm文件,它引用了libz.dylib框架,在原始项目和测试项目中都有引用。

此外,通常的构建设置嫌疑人具有以下值:

框架搜索路径:“$(SDKROOT)/Developer/Library/Frameworks”“$(DEVELOPER_LIBRARY_DIR)/Frameworks”

其他链接器标志:-all_load -lxml2 - ObjC

标头搜索路径:/usr/include/libxml2

0 投票
0 回答
431 浏览

php - PHPs ZipArchive 删除空目录

问题

我正在构建一个在线文件管理器,用于下载整个目录结构,我正在生成所有子目录和文件的 zip 文件(递归),因此我使用RecursiveDirectoryIterator. 这一切都很好,但空目录不在生成的 zip 文件中,尽管 dir 处理正确。这是我目前正在使用的:

如果我省略了,FilesystemIterator::SKIP_DOTS我最终会在所有目录中都有一个. 文件。

结论

迭代器工作,addEmptyDir调用被正确执行(结果也被检查!),使用各种 zip 工具创建一个 zip 文件,使用空目录作为意图。这是 phps 中的错误ZipArchivephp.net lib 还是我遗漏了什么?我不想最终创建虚拟文件只是为了保持目录结构完整。

0 投票
3 回答
1605 浏览

php - 如何检查 PHP 中是否加密的 Zip 存档?

据我了解,状态为存档加密,包含通用位标志。我尝试使用 ZipArchive::statname() 进行检查,但似乎无法通过此方法获取信息。

我还能做什么?阅读存档并解析标题?我知道我可以调用 system(),但我不想使用这个方法,因为它的特殊性(一些托管这个函数被禁用)。

0 投票
1 回答
1428 浏览

php - 创建 zip 存档并将其流式传输到 ftp 服务器

我正在尝试从本地文件创建一个 zip 文件并将其直接流式传输到 ftp(无需先将 zip 写入磁盘)。我对压缩本身没有任何问题,但似乎 ZipArchive 类无法识别 ftp 流包装器。

以下代码是我能想到的最简单的东西,可以说明问题

$zip->open调用在返回true$zip->close返回false。我找不到一种方法来获取错误消息或比仅there is an error. 问题是我做错了什么,或者我不能用 ZipArchive 类做这些事情。

0 投票
6 回答
52178 浏览

c# - ZipArchive creates invalid ZIP file

I am trying to create a new ZIP package from code with one entry and save the ZIP package to a file. I am trying to achive this with the System.IO.Compression.ZipArchive class. I am creating the ZIP package with the following code:

Then I save the ZIP to a file either in WinRT:

Or in normal .NET 4.5:

However, I can't open the produced files neither in Windows Explorer, WinRAR, etc. (I checked that the size of the produced file matches the Length of the zipStream, so the stream itself was saved to the file correctly.)
Am I doing something wrong or is there a problem with the ZipArchive class?