我正在生成一组
HTML,CSS和图像文件,我正在使用ZipArchive将它们压缩成zip文件.我已经确认生成的资产是有效的,但是当我尝试压缩文件集时,无法打开生成的存档文件.
@H_404_15@我没有在PHP中出现任何错误,当我回显$zip-> close()时,它返回true,我认为这意味着它能够写入并保存文件而不会出现问题.使用mac Archive Utility打开zip会引发此错误:
“Unable to expand “filename.zip” into “Downloads”. (Error 21 – Is a@H_301_5@ directory.)
这可能有什么问题?
这是整个PHP脚本:
<?PHP $ref = $_SERVER["HTTP_REFERER"]; $html = $_REQUEST['html']; $images = $_REQUEST['images']; $folder = uniqid(); $prepped = str_replace($ref.'server/PHP/files/','images/',$html); mkdir("./runways/$folder",0777); mkdir("./runways/$folder/images",0777); mkdir("./runways/$folder/css",0777); file_put_contents('./runways/'.$folder.'/index.html',$prepped); copy('../../css/runway.css','./runways/'.$folder.'/css/runway.css'); foreach($images as $image) { $i = urldecode(str_replace($ref.'server/PHP/files/','',$image)); $idata = file_get_contents('./files/'.$i); file_put_contents('./runways/'.$folder.'/images/'.$i,$idata); } //echo $ref.'server/PHP/runways/'.$folder.'/'; $sourcefolder = './runways/'.$folder.'/'; $zipfilename = $folder.'.zip'; $dirlist = new RecursiveDirectoryIterator($sourcefolder); $filelist = new RecursiveIteratorIterator($dirlist); ini_set('max_execution_time',5000); $zip = new ZipArchive(); if ($zip->open('./zips/'.$zipfilename,ZIPARCHIVE::CREATE) !== TRUE) { die ("Could not open archive"); } foreach ($filelist as $key=>$value) { $zip->addFile(realpath($key),$key) or die ("ERROR: Could not add file: $key"); } $zip->close(); echo $ref.'server/PHP/zips/'.$zipfilename; ?>