디렉토리는 다음과 같습니다.
home/
file1.html
file2.html
Another_Dir/
file8.html
Sub_Dir/
file19.html
PHPMyAdmin http://trac.seagullproject.org/browser/branches/0.6-bugfix/lib/other/Zip.php 에서 사용되는 것과 동일한 PHP Zip 클래스를 사용하고 있습니다. 파일이 아닌 디렉토리를 압축하는 방법을 잘 모르겠습니다. 지금까지 내가 가진 내용은 다음과 같습니다.
$aFiles = $this->da->getDirTree($target);
/* $aFiles is something like, path => filetime
Array
(
[home] =>
[home/file1.html] => 1251280379
[home/file2.html] => 1251280377
etc...
)
*/
$zip = & new Zip();
foreach( $aFiles as $fileLocation => $time ){
$file = $target . "/" . $fileLocation;
if ( is_file($file) ){
$buffer = file_get_contents($file);
$zip->addFile($buffer, $fileLocation);
}
}
THEN_SOME_PHP_CLASS::toDownloadData($zip); // this bit works ok
하지만 다운로드 한 해당 zip 파일의 압축을 풀려고하면 "작업이 허용되지 않음"이 표시됩니다.
이 오류는 Mac에서 압축을 풀려고 할 때만 발생하며 명령 줄을 통해 압축을 풀면 파일이 정상적으로 압축 해제됩니다. 다운로드시 특정 콘텐츠 유형 (현재 'application / zip')을 보내야합니까?