У меня есть файл, загруженный cron, который находится в формате zip64.Поддержка zip64 в php?
Как я могу разархивировать его с помощью php или через php cmd()?
У меня есть файл, загруженный cron, который находится в формате zip64.Поддержка zip64 в php?
Как я могу разархивировать его с помощью php или через php cmd()?
удивительно unzip unix только что сработал!
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 автоматически используется при необходимости при чтении в zip-файле.
В качестве альтернативы вы можете вызвать инструмент командной строки, поставляемый с DotNetZip. Это имеет преимущество работы с Linux + Mono, в дополнение к Windows + .NET. Инструмент unzip.exe, и вы можете просто вызвать (cmd) unzip.exe downloaded-zip.zip
. Он автоматически обработает материал zip64. Есть опции в unzip.exe, чтобы указать, где извлекать, какие файлы извлекать и т. Д.
Linux нет моно, можно ли использовать DotNetZip unzip.exe? –
Нет, если вы работаете в Linux, вам нужно моно запустить DotNetZip. – Cheeso
По-видимому, модуль IO::Compress::Zip
Perl поддерживает Zip64. Если вам достаточно удобно установить его, вы можете вызвать небольшой скрипт Perl через shell_exec()
.
из-за ошибки сервера не может установить модуль perl php. Поэтому я могу вызвать скрипт через passthru() или cmd() Мне нужно раздуть zip64 (IO :: Uncompress :: Unzip?) У меня есть perl, v5.8.8 для i686-linux, кто-нибудь знает простой скрипт perl, я мог бы вызов? –
unzip 6.00 имеет расширения zip64. В старых версиях нет. – jmanning2k