First, be sure that you define the FORM tag in your
HTML like this:
<form method=post enctype="multipart/form-data"> # multipart/form-data
+ is necessary for uploads
...
<input type="file" name="file"> # This defines an upload field
Processing the query then should be easy with MIME:Lite:
# Create new Mail object.
my $mail = MIME::LITE->new(
From => $from,
To => $to,
Subject => $subject,
Type => 'multipart/mixed'
);
# 'Attach' text to it.
$mail->attach(
TYPE => 'TEXT',
DATA => $messagebody
);
# If we have an attachment, attach it.
if ($q->param("file")) {
my $upload = $q->upload;
my $fh = $upload->fh;
my @data;
binmode $fh;
local $_ = '';
while (read($fh, $_, 1024)) {
push @data, $_;
}
close $fh;
$mail->attach(
Data => \@data,
Filename => $upload->filename,
Type => $upload->type
);
}
# Finally, send the mail.
open (MAIL, "| /usr/sbin/sendmail -t -i") or die $!;
$mail->print(\*MAIL);
close MAIL;
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.