| Server IP : 112.74.42.100 / Your IP : 216.73.216.142 Web Server : nginx/1.20.2 System : Linux iZwz96lx4pjqiy84w4hni7Z 5.10.134-17.3.al8.x86_64 #1 SMP Thu Oct 31 14:29:57 CST 2024 x86_64 User : www ( 1000) PHP Version : 8.0.26 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/perl-Archive-Zip/examples/ |
Upload File : |
#!/usr/bin/perl -w
#
# Shows one way to write a self-extracting archive file.
# This is not intended for production use, and it always extracts to a
# subdirectory with a fixed name.
# Plus, it requires Perl and A::Z to be installed first.
#
# In general, you want to provide a stub that is platform-specific.
# You can use 'unzipsfx' that it provided with the Info-Zip unzip program.
# Get this from http://www.info-zip.org .
#
# $Revision: 1.6 $
#
use strict;
use Archive::Zip;
use IO::File;
# Make a self-extracting Zip file.
die "usage: $0 sfxname file [...]\n" unless @ARGV > 1;
my $outputName = shift();
my $zip = Archive::Zip->new();
foreach my $file (@ARGV) {
$zip->addFileOrDirectory($file);
}
my $fh = IO::File->new($outputName, O_CREAT | O_WRONLY | O_TRUNC, 0777)
or die "Can't open $outputName\: $!\n";
binmode($fh);
# add self-extracting Perl code
while (<DATA>) {
$fh->print($_)
}
$zip->writeToFileHandle($fh);
$fh->close();
# below the __DATA__ line is the extraction stub:
__DATA__
#!/usr/local/bin/perl
# Self-extracting Zip file extraction stub
# Copyright (C) 2002 Ned Konz
use Archive::Zip qw(:ERROR_CODES);
use IO::File;
use File::Spec;
my $dir = 'extracted';
my $zip = Archive::Zip->new();
my $fh = IO::File->new($0) or die "Can't open $0\: $!\n";
die "Zip read error\n" unless $zip->readFromFileHandle($fh) == AZ_OK;
(mkdir($dir, 0777) or die "Can't create directory $dir\: $!\n") unless -d $dir;
for my $member ( $zip->members )
{
$member->extractToFileNamed( File::Spec->catfile($dir,$member->fileName) );
}
__DATA__