These things are necessary for Web-based uploads: * An HTTP server that accepts uploads. * Access to the /cgi-bin/ to put the receiving script. Prewritten CGI file-upload scripts are available. * A form implemented something like this: <form method="post" enctype="multipart/form-data" action="fup.cgi"> File to upload: <input type=file name=upfile><br> Notes about the file: <input type=text name=note><br> <input type=submit value=Press> to upload the file! </form> Not all browsers support form-based file upload, so try to give alternatives where possible. The Perl CGI.pm module supports file upload. The most recent versions of the cgi-lib.pl library also support file upload. Also, if you need to do file upload in conjunction with form-to-email, the Perl package MIME::Lite handles email attachments.