Go Back   CodingForums.com > :: Server side development > ASP

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rate Thread
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 01-27-2005, 04:20 AM   PM User | #1
Paul2
New Coder

 
Join Date: Jan 2005
Posts: 10
Thanks: 0
Thanked 0 Times in 0 Posts
Paul2 is an unknown quantity at this point
Upload component needed

I'm new to this forum and am very interested in getting some help and suggestions.

I've created a web site that I want people to send their digital photographs to me for print on keepsake items. What is the best way for me to create an upload feature? I'd like the people to have the option to select either 1 picture from their harddrive or select a bunch of pictures and/or including a folder if client would like. I want the user to upload to a server in a specified location I will dedicate just for file uploads. The file extentions of these picture should be related to image extentions such as .jpg, .gif, .bmp, etc.

Note: I have already built a login page with user authentification and some other features.

Does anyone have any suggestions or know of a service that would work for me for what I'm trying to accomplish. I'm really stuck.

Thanks in advance.

Paul

Last edited by Paul2; 02-06-2005 at 05:34 PM.. Reason: strand was showing up on search engine results
Paul2 is offline   Reply With Quote
Old 01-27-2005, 05:37 AM   PM User | #2
charlieb
New Coder

 
Join Date: May 2004
Posts: 27
Thanks: 0
Thanked 0 Times in 0 Posts
charlieb is an unknown quantity at this point
Try this:
http://www.stardeveloper.com/article...1042501&page=1

Or for multiple files this:
http://www.dotnetjunkies.com/Tutoria...8FE724A39.dcik

Last edited by charlieb; 01-27-2005 at 05:43 AM..
charlieb is offline   Reply With Quote
Old 01-27-2005, 08:40 AM   PM User | #3
ghell
Senior Coder

 
Join Date: Apr 2003
Location: England
Posts: 1,192
Thanks: 5
Thanked 13 Times in 13 Posts
ghell is on a distinguished road
i found this in pure asp a while back:

Code:
<%
'***************************************
' File:	  Upload.asp
' Author: Jacob "Beezle" Gilley
' Email:  avis7@airmail.net
' Date:   12/07/2000
' Comments: The code for the Upload, CByteString, 
'			CWideString	subroutines was originally 
'			written by Philippe Collignon...or so 
'			he claims. Also, I am not responsible
'			for any ill effects this script may
'			cause and provide this script "AS IS".
'			Enjoy!
'****************************************

Class FileUploader
	Public  Files
	Private mcolFormElem

	Private Sub Class_Initialize()
		Set Files = Server.CreateObject("Scripting.Dictionary")
		Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
	End Sub
	
	Private Sub Class_Terminate()
		If IsObject(Files) Then
			Files.RemoveAll()
			Set Files = Nothing
		End If
		If IsObject(mcolFormElem) Then
			mcolFormElem.RemoveAll()
			Set mcolFormElem = Nothing
		End If
	End Sub

	Public Property Get Form(sIndex)
		Form = ""
		If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex))
	End Property

	Public Default Sub Upload()
		Dim biData, sInputName
		Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
		Dim nPosFile, nPosBound

		biData = Request.BinaryRead(Request.TotalBytes)
		nPosBegin = 1
		nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
		
		If (nPosEnd-nPosBegin) <= 0 Then Exit Sub
		 
		vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
		nDataBoundPos = InstrB(1, biData, vDataBounds)
		
		Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))
			
			nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
			nPos = InstrB(nPos, biData, CByteString("name="))
			nPosBegin = nPos + 6
			nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
			sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
			nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
			nPosBound = InstrB(nPosEnd, biData, vDataBounds)
			
			If nPosFile <> 0 And  nPosFile < nPosBound Then
				Dim oUploadFile, sFileName
				Set oUploadFile = New UploadedFile
				
				nPosBegin = nPosFile + 10
				nPosEnd =  InstrB(nPosBegin, biData, CByteString(Chr(34)))
				sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
				oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))

				nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
				nPosBegin = nPos + 14
				nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
				
				oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
				
				nPosBegin = nPosEnd+4
				nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
				oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
				
				If oUploadFile.FileSize > 0 Then Files.Add LCase(sInputName), oUploadFile
			Else
				nPos = InstrB(nPos, biData, CByteString(Chr(13)))
				nPosBegin = nPos + 4
				nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
				If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
			End If

			nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)
		Loop
	End Sub

	'String to byte string conversion
	Private Function CByteString(sString)
		Dim nIndex
		For nIndex = 1 to Len(sString)
		   CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
		Next
	End Function

	'Byte string to string conversion
	Private Function CWideString(bsString)
		Dim nIndex
		CWideString =""
		For nIndex = 1 to LenB(bsString)
		   CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1))) 
		Next
	End Function
End Class

Class UploadedFile
	Public ContentType
	Public FileName
	Public FileData
	
	Public Property Get FileSize()
		FileSize = LenB(FileData)
	End Property

	Public Sub SaveToDisk(sPath)
		Dim oFS, oFile
		Dim nIndex
	
		If sPath = "" Or FileName = "" Then Exit Sub
		If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\"
	
		Set oFS = Server.CreateObject("Scripting.FileSystemObject")
		If Not oFS.FolderExists(sPath) Then Exit Sub
		
		Set oFile = oFS.CreateTextFile(sPath & FileName, True)
		
		For nIndex = 1 to LenB(FileData)
		    oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
		Next

		oFile.Close
	End Sub
	
	Public Sub SaveToDatabase(ByRef oField)
		If LenB(FileData) = 0 Then Exit Sub
		
		If IsObject(oField) Then
			oField.AppendChunk FileData
		End If
	End Sub

End Class
%>
i cant remember where i got it but i hope it helps

note you need to send the form with binary using

<form method="post" enctype="multipart/form-data">
<input type="file"...>
</form>

and then you can load it with

Dim Uploader, File
Set Uploader = New FileUploader
Uploader.Upload()

normal form elements can be accessed with Uploader.Form() instead of Request.Form()

number of files to be uploaded can be counted with
Uploader.Files.Count

you can loop through the files to be uploaded by doing
For Each File In Uploader.Files.Items
File.SaveToDisk "E:\UploadedFiles\"
Next
__________________
My tech/code blog
ghell is offline   Reply With Quote
Old 01-27-2005, 06:01 PM   PM User | #4
ghell
Senior Coder

 
Join Date: Apr 2003
Location: England
Posts: 1,192
Thanks: 5
Thanked 13 Times in 13 Posts
ghell is on a distinguished road
after searching google for
Jacob Gilley upload.asp
i found this link, i hope it is useful, i couldnt find any documentation from the author, sry

http://www.asp101.com/articles/jacob/scriptupload.asp
__________________
My tech/code blog
ghell is offline   Reply With Quote
Old 02-02-2005, 08:42 AM   PM User | #5
Bullschmidt
Regular Coder

 
Join Date: Aug 2002
Location: USA
Posts: 478
Thanks: 0
Thanked 2 Times in 2 Posts
Bullschmidt is an unknown quantity at this point
And here is a another pure ASP (i.e. no components) resource (my favorite and the site does have some documentation) for letting the user upload a file which is something that was unfortunately not built into ASP:

ASP File Upload Using VBScript by John R. Lewis - 7/10/2000
http://aspzone.com/posts/160.aspx
__________________
J. Paul Schmidt
www.Bullschmidt.com - Freelance Web and Database Developer
www.Bullschmidt.com/DevTip.asp - Classic ASP Design Tips
Bullschmidt is offline   Reply With Quote
Old 02-09-2005, 03:07 PM   PM User | #6
Interlink
New to the CF scene

 
Join Date: Feb 2005
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Interlink is an unknown quantity at this point
Help

How do I get the element name using Uploader.Files? I have multiple files being uploaded and need to get the field name so I can upload the file name to a specific field in a DB.

Here is my snippet for uploading the files.

For Each File In Uploader.Files.Items
File.SaveToDisk upPath
Next


How can I get the element name?

Last edited by Interlink; 02-09-2005 at 03:11 PM..
Interlink is offline   Reply With Quote
Old 02-09-2005, 03:45 PM   PM User | #7
ghell
Senior Coder

 
Join Date: Apr 2003
Location: England
Posts: 1,192
Thanks: 5
Thanked 13 Times in 13 Posts
ghell is on a distinguished road
i cant find it anywhere, i might just make my own, i always wanted to make a class object in asp

if it always loads the same ammount could you just increment in the loop and say if i = 0 then do the thing for the first element.. if i = 1..etc..

ofc using a select case
__________________
My tech/code blog

Last edited by ghell; 02-09-2005 at 03:54 PM..
ghell is offline   Reply With Quote
Old 02-09-2005, 04:34 PM   PM User | #8
vimalpercy
New to the CF scene

 
Join Date: Feb 2005
Posts: 4
Thanks: 0
Thanked 0 Times in 0 Posts
vimalpercy is an unknown quantity at this point
If you want a asp upload component then
http://www.freeaspupload.net/
you download the source code from here. The have given a good documentation of this.
Things you can do to tweak this class are
1. Rename the file name
2. rename the file extension and most of the time renamed extensions worked between gif and jpeg.
3. can add any no of files
4. can make a copy of files and save file as 2 different files

With regards
vimal
vimalpercy is offline   Reply With Quote
Old 02-10-2005, 08:37 AM   PM User | #9
ghell
Senior Coder

 
Join Date: Apr 2003
Location: England
Posts: 1,192
Thanks: 5
Thanked 13 Times in 13 Posts
ghell is on a distinguished road
renaming between standard image types such as bmp, png, gif and jpg will usuauly still work on a site (some difficulties with transparancies on gifs etc).. HOWEVER .. you arent changing it, you are just changing the name.. the header is still a gif if you rename a gif to a jpg
__________________
My tech/code blog

Last edited by ghell; 02-10-2005 at 08:38 AM.. Reason: typo
ghell is offline   Reply With Quote
Old 02-10-2005, 12:50 PM   PM User | #10
Bullschmidt
Regular Coder

 
Join Date: Aug 2002
Location: USA
Posts: 478
Thanks: 0
Thanked 2 Times in 2 Posts
Bullschmidt is an unknown quantity at this point
Quote:
Originally Posted by Interlink
How do I get the element name using Uploader.Files? I have multiple files being uploaded and need to get the field name so I can upload the file name to a specific field in a DB.

Here is my snippet for uploading the files.

For Each File In Uploader.Files.Items
File.SaveToDisk upPath
Next


How can I get the element name?
Well http://aspzone.com/articles/160.aspx in the Usage Examples area toward the bottom says this (in part):

Dim objUpload, lngLoop

If Request.TotalBytes > 0 Then
Set objUpload = New clsUpload
%>
File(s) Uploaded: <%= objUpload.Files.Count %>

<%
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:\uploads\"
%>
Form Element Name:
<%= objUpload.Files.Key(lngLoop) %>

File Name:
<%= objUpload.Files.Item(lngLoop).FileName %>

...
__________________
J. Paul Schmidt
www.Bullschmidt.com - Freelance Web and Database Developer
www.Bullschmidt.com/DevTip.asp - Classic ASP Design Tips
Bullschmidt is offline   Reply With Quote
Old 07-22-2005, 05:27 PM   PM User | #11
Bullschmidt
Regular Coder

 
Join Date: Aug 2002
Location: USA
Posts: 478
Thanks: 0
Thanked 2 Times in 2 Posts
Bullschmidt is an unknown quantity at this point
Updated (corrected) link to my earlier post:

ASP File Upload Using VBScript by John R. Lewis - 7/10/2000
http://aspzone.com/articles/160.aspx
__________________
J. Paul Schmidt
www.Bullschmidt.com - Freelance Web and Database Developer
www.Bullschmidt.com/DevTip.asp - Classic ASP Design Tips
Bullschmidt is offline   Reply With Quote
Reply

Bookmarks

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 07:37 AM.


Advertisement
Log in to turn off these ads.