2012-07-19 88 views
3

我一直无法弄清楚是否有办法用php将特定的目录解压到一个zip文件中。当使用代码,如使用PHP将zip压缩到一个特定的目录中ZipArchive

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

将解压zip到目录“文件”,并把匹配的zip的名称的目录中的所有文件。我不希望上传方能够决定上传目录的名称。例如,如果我上传了一个名为 “zip.pdf”含有“myimg.jpg”当我将其解压缩它的位置变得拉链:

files/zip/myimg.jpg 

那里,我希望它是

files/myimg.jpg 

不管怎么说,我想知道是否有办法让ZipArchive不会创建一个新的目录来存放解压缩的内容,或者如果我将不得不遍历所有解压缩的文件并在解压缩完成后移动它们。

回答

2

最安全的方法是通过压缩zip内容并单独处理每个文件。也就是说,解压到唯一的临时目录,然后查看每个文件并决定。如果不同用户的文件发生冲突会怎样?不要让这种事情盲目发生。

+0

它是一个非常简单的zip驱动的客户端CMS,目标是让任何新的上传完全覆盖前一组文件,如果有冲突的话。我们只是试图避免强制客户端使用特定的zip文件名。 – rcooper102 2012-07-19 23:33:54