in reply to How to upload a file to a web server?
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; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Answer: How do I upload an image?
by merlyn (Sage) on Mar 27, 2001 at 22:44 UTC |