سؤال

لدي ملف تم تنزيله بواسطة Cron بتنسيق Zip64.

كيف يمكنني فك ضغطها باستخدام PHP أو عبر CMD PHP ()؟

هل كانت مفيدة؟

المحلول

من المستغرب أن Unix's Unlzip عملت للتو!

exec(unzip -n -q zip-downloaded-by-cron.zip -d photos);

نصائح أخرى

خيارات زوجين أعرفها.

إذا تم تشغيل PHP الخاص بك على Windows، فيمكنك استخدام واجهة COM ل dotnetzip..

$zipInput = "c:\\temp\\zip-downloaded-by-cron.zip"; 
$zip = new COM("Ionic.Zip.ZipFile");
$zip->Initialize($zipInput);
$dirForExtract= "c:\\temp\\extract";
# optional password 
$zip->Password = "AES-Encryption-Is-Secure";
$zip->ExtractAll($dirForExtract);
$zip->Dispose();

بالنسبة إلى Dotnetzip، يتم استخدام ZIP64 تلقائيا عند الضرورة عند القراءة في ملف مضغوط.

بدلا من ذلك، يمكنك استدعاء أداة سطر الأوامر المقدمة مع dotnetzip. هذا لديه ميزة العمل على Linux + Mono، بالإضافة إلى Windows + .NET. الأداة Unzip.exe، ويمكنك فقط استدعاء (CMD) unzip.exe downloaded-zip.zip. وبعد سوف تتعامل تلقائيا بأشياء ZIP64. هناك خيارات على UNZIP.EXE لتحديد مكان استخراج الملفات التي تم استخراجها، وما إلى ذلك.

على ما يبدو بيرل IO::Compress::Zip الوحدة تدعم ZIP64. إذا كنت مرتاحا بما فيه الكفاية لتثبيته، فيمكنك استدعاء برنامج نصي صغير عبر PERL shell_exec().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top