解压缩之前是否有任何重命名zipfile文件夹的解决方案?
$zip = new ZipArchive();
$result=$zip->renameName($acfoldername , $renameFolder );
函数renameName似乎只是重命名文件而不是文件夹
$zip->renameName($acfoldername , $renameFolder );
OR 在Zend Framework中是否有任何zip文件管理解决方案?
答案 0 :(得分:5)
使用ZipArchive重命名zipfile中的目录: - )
$tmpfile = "myzip.zip";
copy( "template.zip", $tmpfile );
$zip = new ZipArchive;
$res = $zip->open( $tmpfile, ZipArchive::CREATE );
if ($res === TRUE) {
$index = "<html>content</html>";
$zip->addFromString('dirname/index.html', $index);
$zip->addFile("mp3/sample.mp3", 'dirname/audio/myAudioFile.mp3');
// rename directory "dirname"
$name="newDirectoryName";
$i=0;
while($item_name = $zip->getNameIndex($i)){
$zip->renameIndex( $i, str_replace( "dirname", $name, $item_name ) );
$i++;
}
$zip->close();
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="'.$name.'.zip"');
readfile($tmpfile);
unlink($tmpfile);
}
答案 1 :(得分:-2)
很抱歉,但ZF中没有能够重命名ZIP文件中的文件夹的课程
但同样没有什么不可能你可以使用相同的ZipArchive在某处提取文件,然后使用函数Glob
或SPL Directory Iterator
“
使用rename
找到您想要的文件夹,最后一步是使用相同的ZipArchive
再次压缩您的文件夹
创建zip文件的示例:http://davidwalsh.name/create-zip-php