File Upload With <INPUT TYPE="FILE"

How do you handle a file being uploaded from the browser's machine with the html form element <INPUT TYPE
icacheAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

haystorCommented:
Are you prepared to program Perl to do this?
0
icacheAuthor Commented:
Got the Llama book next to me, we're prepared....
0
icdCommented:
First get a copy of the cgi-bin.pl library from

http://cgi-lib.stanford.edu/cgi-lib/

The latest version of this provides for file upload. The above URL will give a description of the program.

Second. You need an input form. This is one I use.

<form method='POST' enctype='multipart/form-data' action='upload.pl'>
<input type="file" name="upfile" size=25>
<INPUT TYPE="image" NAME="submit" value="submit" src="/img/upload.gif" border=0 alt="upload" hspace=2>
</form>

Third. You need to produce your own cgi-script to process the input. The file contents will be in one of the input variables. This is the segment of code I use to save an uploaded file.

require "cgi-bin.pl";
&ReadParse;

if (open (FUPL, ">../files/uploadfilename.tmp")) {
  print FUPL $in{'upfile'};
  close (FUPL);
} else {
  print "<b>$in{filename}</b> upload failed<br>\n";
  return;
}

And that is all there is to it!
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Cloud Class® Course: Microsoft Windows 7 Basic

This introductory course to Windows 7 environment will teach you about working with the Windows operating system. You will learn about basic functions including start menu; the desktop; managing files, folders, and libraries.

julio011597Commented:
I'm afraid that works on text files only, doesn't it?
You need some extra processing to handle encoded binary data.
0
icdCommented:
No. It works on binary files as well. (At least I have had no problems so far!).
0
icacheAuthor Commented:
You've stated that the file's contents will be in the the variable of the element $in('file'}. What I'm getting as the content of that element is just the file's name, not the contents. I haven't had a chance to install cgi-bin.pl and give your suggestion a try, but does cgi-bin.pl findthe contents in that element while stdin alone cannot
0
icdCommented:
Actually it should be in $in{'upfile'} since that is the name of the <input type="file" input field.

Are you sure you used the correct 'enctype'?

Interpretation of stdin without cgi-bin.pl can be quite complex. I suggest you load a copy of cgi-bin.pl.

Another possible problem could be that ISTR that Microsoft IE does not support the input type="file". (I have not checked this recently).

0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Scripting Languages

From novice to tech pro — start learning today.