使用PHP ZipArchive将zip文件解压到指定目录

3

我不确定是否有一种方法可以使用 PHP 将 zip 文件解压到指定目录。当使用以下代码时:

$zip->extractTo("files/");

这个程序将会把zip文件解压到"files"目录下,并且会在该目录下创建一个与zip文件同名的子目录,并把所有文件放入其中。我不希望上传者能够决定上传到的目录名称。例如,如果我上传了一个名为“zip.pdf”的zip文件,其中包含“myimg.jpg”,那么当我解压它时,它的位置就变成了:

files/zip/myimg.jpg

我希望您能将其变为

files/myimg.jpg

无论如何,我想知道是否有一种方法可以让ZipArchive不创建一个新目录来存放解压的内容,或者如果我需要在解压完成后循环遍历所有解压的文件并移动它们。

1个回答

2
最安全的方法是通过zip内容进行随机排序,并逐个处理每个文件。也就是说,解压到唯一的临时目录,然后查看每个文件并决定。如果不同用户的文件发生冲突怎么办?不要盲目地让这种情况发生。

这是一个非常简单的基于ZIP的内容管理系统,目标仅是在上传新文件时完全覆盖先前的文件集(如果存在冲突)。我们只是希望避免强制客户使用特定的ZIP文件名。 - rcooper102

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接