Form To Upload Files
Here is a sample which consist of 2 parts, the HTML and the ASP code:
Please Note, this sample is for Windows accounts hosted on Windows 2003 server.
The HMTL File
<HTML>
<BODY BGCOLOR="#FFFFFF">
<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="/cgi-bin/Upload.asp">
<INPUT TYPE=FILE NAME="FILE1">
<INPUT TYPE=FILE NAME="FILE2">
<INPUT TYPE=FILE NAME="FILE3">
<INPUT TYPE=SUBMIT VALUE="Upload!">
</FORM>
</BODY>
</HTML>
Upload.asp in your /cgi-bin Directory
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
' Upload files
Upload.OverwriteFiles = False ' Generate unique names
Upload.SetMaxSize 1048576 ' Truncate files above 1MB
Upload.SaveVirtual "/cgi-bin"
%>
Form To Email Files
The ASPUpload script can be customized to let website visitors attach files to an email form. Here's a sample:
The HTML File
<HTML>
<BODY BGCOLOR="#FFFFFF">
<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="/cgi-bin/Upload.asp">
<INPUT TYPE=FILE NAME="FILE1">
<INPUT TYPE=FILE NAME="FILE2">
<INPUT TYPE=FILE NAME="FILE3">
<INPUT TYPE=SUBMIT VALUE="Upload!">
</FORM>
</BODY>
</HTML>
Upload.asp in your /cgi-bin Directory
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
' Upload files
Upload.SetMaxSize 1048576 ' Truncate files above 1MB
Upload.SaveVirtual "/cgi-bin/"
Set JMail = Server.CreateObject( "JMail.SMTPMail" )
JMail.ServerAddress = "mail.yourdomainname.com:25"
JMail.Sender = "admin@yourdomainname.com"
JMail.Subject = "Here you go..."
JMail.AddRecipient( "admin@yourdomainname.com" )
For Each File in Upload.Files
JMail.AddAttachment( "e:\\inetpub\\clients\\yourdomainname.com\\cgi-bin\\" & File.ExtractFileName )
Next
message = ""
For Each Item in Upload.Form
message = message & Item.Name & "= " & Item.Value & VBCrLf
Next
JMail.Body = message
JMail.Execute()
Set Jmail = Nothing
Set Upload = Nothing
%>
Notes and Troubleshooting
- The directory where the files will be uploaded MUST have the "write" permissions. The default setting on your account is to provide write permissions only to the /cgi-bin and /fpdb directories. However, "write" permissions can be provided to any directory by contacting us at support@myhosting.com.
- For security reasons, the "save" method is disabled. You need to use SaveVirtual method of ASPUpload.
- It is not necessary to have the files upload to the /cgi-bin. By default, you have "write" permissions to your cgi-bin and all related subdirectories. Additional permissions can be configured by contacting technical support at support@myhosting.com.
- An error that frequently occurs is:
Persits.Upload.1 error '800a0028'
This feature has been disabled by the system administrator. Impersonation of a user via ASPUpload is disabled by our system defaults (i.e. Upload.LogonUser is disabled).
- Another error that often occurs is the "Script timed out" error:
- The maximum amount of time for a script to execute was exceeded.
- You can change this limit by specifying a new value for the
- property Server.ScriptTimeOut or by changing the value in the
IIS administration tools.
This error can be quickly solved by inserting:
<% Server.ScriptTimeOut = 360 %>
as the first line of your code. This will set the timeout to 360 seconds.
- Restrictions or functions that are disabled on the component ASPUpload are Save method, COM object registration, changing ACLs, impersonating users, remove directory, file copy, file delete and directory listing (directory and file functions are already available via FileSystemObject).