So what is File Upload and how does it work? File
Upload or HTTP upload allows your visitors to send files to your
web server using standard forms. In the same way that there are
form elements that allow you to enter text and others that allow
you to choose items from a list there is a form element that allows
you to choose a file.
So what does a File Upload form element look
like? Well here's a small and non-functional form containing a file
Like many useful elements of HTML, File Upload
was not supported in Internet Explorer 3.0 but was soon afterwards
added in version 3.02. It is available in Netscape Navigator from
version 2.02 onwards. So the great advantage of HTTP upload is that
upload facilities are standard on virtually any browser that will
come to your web site.
So what does the HTML look like? Well, much like
any other piece of form HTML. Here's the code for the above.
<form method="post" action="file-upload-1.htm"
<input type="file" name="fileField"><br><br>
<input type="submit" name="submit"
There are only a couple of real differences. The
input type of the upload is 'file' rather than 'text'. The
'enctype' of the form is 'multipart/form-data'. Multipart form data
is an Internet standard (covered by RFC 1867) for sending lots of
different types of information over the Internet as one
After the upload form has been submitted to the
server we have to get the server to extract the file from the
upload. We would expect to be able to do this using standard ASP.
Although Microsoft browsers have supported multipart encoding from
the moment that Microsoft got interested in the web, the standard
form components they supply for web serving do not. This means you
have to use a third-party component to do it for you.
When choosing your solution you should bear in
mind that file upload is not as simple as it might seem. Just as
one example, some browsers encode files before transmitting them!
Internet Explorer on MacOS uploads files encoded as MacBinary to
allow special Mac specific features to be transmitted. While Mac
browsers will normally make up only 10% of your visitors, you
should bear in mind your audience. In some picture related
industries like publishing you may find that this proportion
A related issue is that you can't really rely on
either the file name or the mime type of the file as provided to
you. Because of the cross platform nature of the industry a text
file may be named 'readme' or 'readme.txt' or even 'readme
10\10\99'. Because the mime type is determined by the browser it
could be anything from 'text/plain' to 'application/x-macbinary' to
something completely meaningless. You have to make decisions on a
case by case basis depending on what you are trying to do.
ABCUpload is designed to work around these
problems invisibly so that you don't have to worry about