|
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 : /usr/share/doc/libarchive-zip-perl/examples/ |
Upload File : |
#!/usr/bin/perl -w
# Requires the following to be installed:
# File::Path
# File::Spec
# IO::Scalar, ... from the IO-stringy distribution
# MIME::Base64
# MIME::QuotedPrint
# Net::SMTP
# Mail::Internet, ... from the MailTools distribution.
# MIME::Tools
use strict;
use Archive::Zip qw(:CONSTANTS :ERROR_CODES);
use IO::Scalar;
use MIME::Entity; # part of MIME::Tools package
my $zipContents = '';
my $SH = IO::Scalar->new(\$zipContents);
my $zip = Archive::Zip->new();
my $member;
# add a string as a member:
my $stringMember = '<html><head></head><body><h1>Testing</h1></body></html>';
$member = $zip->addString($stringMember, 'whatever.html');
# $member->desiredCompressionMethod(COMPRESSION_STORED);
# write it to the scalar
my $status = $zip->writeToFileHandle($SH);
$SH->close;
print STDERR "zip is " . length($zipContents) . " bytes long\n";
### Create an entity:
my $top = MIME::Entity->build(
Type => 'multipart/mixed',
From => 'ned@bike-nomad.com',
To => 'billnevin@tricom.net',
Subject => "Your zip",
);
# attach the message
$top->attach(
Encoding => '7bit',
Data => "here is the zip you ordered\n"
);
# attach the zip
$top->attach(
Data => \$zipContents,
Type => "application/x-zip",
Encoding => "base64",
Disposition => 'attachment',
Filename => 'your.zip'
);
# attach this code
$top->attach(
Encoding => '8bit',
Type => 'text/plain',
Path => $0,
# Data => 'whatever',
Disposition => 'inline'
);
# and print it out to stdout
$top->print(\*STDOUT);