निर्देशिका कुछ इस तरह है:
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 ज़िप वर्ग का उपयोग कर रहा हूं । मुझे यकीन नहीं है कि कैसे एक फ़ाइल के बजाय एक निर्देशिका को ज़िप करना है। यहाँ मेरे पास अभी तक क्या है:
$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
लेकिन जब मैं संबंधित डाउनलोड की गई ज़िप फ़ाइल को अनज़िप करने की कोशिश करता हूं तो मुझे "ऑपरेशन की अनुमति नहीं है"
यह त्रुटि केवल तब होती है जब मैं अपने मैक पर अनज़िप करने की कोशिश करता हूं, जब मैं कमांड लाइन के माध्यम से अनज़िप करता हूं तो फ़ाइल अनज़िप ठीक होती है। क्या मुझे वर्तमान में 'एप्लिकेशन / ज़िप' पर एक विशिष्ट सामग्री प्रकार डाउनलोड करने के लिए भेजने की आवश्यकता है