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
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.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; } }
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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |