A bit late I know but I'm sure someone will find this useful...

I had to write my own when I found out that my version of CGI.pm didn't handle uploads. This is what I came up with for a M$Windwoes application

binmode STDIN; read (STDIN, my ($cgidata), $ENV{'CONTENT_LENGTH'}) or doerror("Corrup +t CGI header!"); my ($boundary) = $ENV{'CONTENT_TYPE'} =~ /boundary=(\S+)/; my (@form) = split /\x0d?\x0a?--$boundary-?-?\x0d\x0a/, $cgidata; for (@form) { if ($_ =~ /content-type:/i) { my ($details, $file) = split /\x0d\x0a\x0d\x0a/, $_, 2; $details =~ s/\x0d//gs; my ($MIME) = $details =~ /content-type: (.*)$/i; my ($name) = $details =~ /\sname="([^"]+)/i; if ($MIME =~ /jpe?g/i) { $image{$name} = $file } else { $textfile{$name} = $file } } else { my ($element, $value) = split /\x0d\x0a\x0d\x0a/, $_, 2; ($element) =~ /\sname="([^"]+)/i; $form{$1} = $value; } }
This code is specifically for JPEGs and TEXT upload but could easily be modified and will also parse form elements so you end up with %image %textfile and %form.

In reply to Re: How do I upload an image? by larryk
in thread How to upload a file to a web server? by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.