Click here to Skip to main content
15,867,686 members
Articles / Programming Languages / ASP
Article

File Upload using a VBScript Class

Rate me:
Please Sign up or sign in to vote.
4.91/5 (48 votes)
29 May 20022 min read 393.1K   9K   63   59
Using a VBScript class to upload files. Useful when you are not able to deploy a custom COM object.

Introduction

There are several components on the market that allow your ASP application to handle file uploads. But when you are in a situation where in you are not allowed to install any components then this vbsUpload will be helpful to you. During my Academic Project I was not allowd to use the components on the server and hence found an alternative to Upload the Files from the client end.

Code Support

vbsUpload.asp
This is the file which contains the whole logic of the File Upload. The Request.Binary read method is used to read the raw data sent by the client as part of a POST request. ASP provides a method to apply URL encoding rules, but no publicly exposed way to decode. The URLDecode method does that URLDecoding. Then the raw data is parsed and the File elements and Form Elements are separately kept in two collection objects.

Process_File.asp
This is a simple asp file used to Upload the multipart/form-data. Once the data is available this file will save the file on the hard disk. The file is as follows:
VBScript
<%@ Language="VBScript" %>
<!-- #include file="vbsUpload.asp" -->
<form method=post
      enctype="multipart/form-data"
      action=<%=request.servervariables("script_name")%>>
Your File:<BR><input type=file name=YourFile><BR><BR>
<input type=submit name=submit value="Upload">
</form>
<%
Dim objUpload, lngLoop

If Request.TotalBytes > 0 Then
	Set objUpload = New vbsUpload

  For lngLoop = 0 to objUpload.Files.Count - 1
    'If accessing this page annonymously,
    'the internet guest account must have
    'write permission to the path below.
    objUpload.Files.Item(lngLoop).Save "c:\Newupload\"

	Response.Write "File Uploaded"
	Next

End if
%>
Process_DB.asp
This is another simple file to get multipart/form-data but this will save the data in the Database

conn.asp
This is for using SQLServer to store the files. I have provided the Script to create the Table. So you can create the same table format and use it. Don't forget to fill in the correct Connection String.

Download.asp
This file is used to retreive the binay data from the Database and to display on the Web.
Note: The binary data is written into a file using "Scripting.FileSystemObject" CreateTextFile method. This is not working properly in the case of Excel and other binary files. So limit your usuage only with plain text file. When the file is uploaded to database, the content type is noted and the binary content is saved as Image data type in the SQL Server. Using download.asp the binary data is written back to the client with the proper content type. So there is no problem with the Database File Upload&download. You can upload all the file types (Excel,jpg etc..) using Process_DB.asp.

Conclusion

Now it is easy for me to handle file uploads using ASP and VBScript. I was using this on Windows 2000 Server and Internet Explorer 5. There may be bugs on other versions of the server or client. Please treat this code as a demo version only. It is not meant for production use unless other wise you make it that way.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Hong Kong Hong Kong
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
QuestionUpload Class quit working suddenly Pin
Dravenx8-Jan-16 6:51
Dravenx8-Jan-16 6:51 
GeneralMy vote of 3 Pin
Kraat16-Apr-11 5:16
Kraat16-Apr-11 5:16 
GeneralRe: My vote of 3 Pin
krupalali26-May-11 22:20
krupalali26-May-11 22:20 
GeneralBest Ever ASP Uploader Pin
Albee Tang21-Jan-11 21:43
Albee Tang21-Jan-11 21:43 
GeneralMy vote of 5 Pin
Albee Tang21-Jan-11 21:41
Albee Tang21-Jan-11 21:41 
GeneralobjUpload.Files.Count is 0 Pin
Member 194710423-Apr-10 2:57
Member 194710423-Apr-10 2:57 
GeneralError in using vbsUpload.asp Pin
Member 12675465-Sep-09 3:17
Member 12675465-Sep-09 3:17 
Questionhi urgent plz Pin
Member 426072323-Feb-09 20:24
Member 426072323-Feb-09 20:24 
GeneralWant to call the webpage inside a vbs and upload a file automaticly...need some help Pin
nelsonribeiro13-Feb-09 13:01
nelsonribeiro13-Feb-09 13:01 
QuestionThere appears to be a size limit - is this correct? Pin
Rupert Dick8-Oct-08 6:52
Rupert Dick8-Oct-08 6:52 
AnswerRe: There appears to be a size limit - is this correct? Pin
Member 147620175-Mar-20 4:48
Member 147620175-Mar-20 4:48 
GeneralRe: There appears to be a size limit - is this correct? Pin
Member 1533737527-Aug-21 8:52
Member 1533737527-Aug-21 8:52 
Questionhow get reports of all files from database Pin
Nageshbijoor22-Aug-08 22:59
Nageshbijoor22-Aug-08 22:59 
Questionimmediately needed Pin
LalithaSundaresan1-Apr-08 23:57
LalithaSundaresan1-Apr-08 23:57 
Questionscript to get the name of uploaded Pin
leeechoonkeong27-Aug-07 18:16
leeechoonkeong27-Aug-07 18:16 
AnswerRe: script to get the name of uploaded Pin
Nageshbijoor22-Aug-08 22:54
Nageshbijoor22-Aug-08 22:54 
Generalthanks Pin
landan21-Aug-07 17:55
landan21-Aug-07 17:55 
Generalurgent Please Pin
MErV -The DEV14-Aug-07 1:04
MErV -The DEV14-Aug-07 1:04 
QuestionHow to upload big File size Pin
long_great22-Jul-07 22:47
long_great22-Jul-07 22:47 
GeneralGetting error Pin
Nikhil_maverick23-Mar-07 10:27
Nikhil_maverick23-Mar-07 10:27 
GeneralRe: Getting error Pin
evilmonkey001324-Apr-07 13:46
evilmonkey001324-Apr-07 13:46 
Same thing here...I'm too lazy to count out lines in notepaad...

---mary

GeneralRe: Getting error Pin
long_great22-Jul-07 22:14
long_great22-Jul-07 22:14 
QuestionUploading multiple files Pin
azzawa2-Dec-06 20:13
azzawa2-Dec-06 20:13 
QuestionReceiving a file from a client which posts the file as multipart/formdata Pin
kuem09213-Nov-06 19:54
kuem09213-Nov-06 19:54 
QuestionRename File during / After Upload Pin
Ryan Powell3-Sep-06 1:56
Ryan Powell3-Sep-06 1:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.