|
Server : LiteSpeed System : Linux srv104790275 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64 User : dewac4139 ( 1077) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/thread-self/root/usr/share/doc/libarchive-zip-perl/examples/ |
Upload File : |
#!/usr/bin/perl -w
# usage: valid zipname.zip
# exits with non-zero status if invalid zip
# status = 1: invalid arguments
# status = 2: generic error somewhere
# status = 3: format error
# status = 4: IO error
use strict;
use Archive::Zip qw(:ERROR_CODES);
use IO::Handle;
use File::Spec;
# instead of stack dump:
Archive::Zip::setErrorHandler(sub { warn shift() });
my $nullFileName = File::Spec->devnull();
my $zip = Archive::Zip->new();
my $zipName = shift(@ARGV) || exit 1;
eval {
my $status = $zip->read($zipName);
exit $status if $status != AZ_OK;
};
if ($@) { warn 'error reading zip:', $@, "\n"; exit 2 }
eval {
foreach my $member ($zip->members) {
next if $member->isSymbolicLink();
my $fh = IO::File->new();
$fh->open(">$nullFileName") || die "can't open $nullFileName\: $!\n";
my $status = $member->extractToFileHandle($fh);
if ($status != AZ_OK) {
warn "Extracting ", $member->fileName(), " from $zipName failed\n";
exit $status;
}
}
}