Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 11 of 11
  1. #1
    New Coder
    Join Date
    Jan 2005
    Posts
    10
    Thanks
    0
    Thanked 0 Times in 0 Posts

    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

  • #2
    New Coder
    Join Date
    May 2004
    Posts
    27
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Last edited by charlieb; 01-27-2005 at 05:43 AM.

  • #3
    Senior Coder
    Join Date
    Apr 2003
    Location
    England
    Posts
    1,192
    Thanks
    5
    Thanked 13 Times in 13 Posts
    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

  • #4
    Senior Coder
    Join Date
    Apr 2003
    Location
    England
    Posts
    1,192
    Thanks
    5
    Thanked 13 Times in 13 Posts
    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

  • #5
    Regular Coder
    Join Date
    Aug 2002
    Location
    USA
    Posts
    478
    Thanks
    0
    Thanked 2 Times in 2 Posts
    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

  • #6
    New to the CF scene
    Join Date
    Feb 2005
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    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.

  • #7
    Senior Coder
    Join Date
    Apr 2003
    Location
    England
    Posts
    1,192
    Thanks
    5
    Thanked 13 Times in 13 Posts
    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
    Last edited by ghell; 02-09-2005 at 03:54 PM.

  • #8
    New to the CF scene
    Join Date
    Feb 2005
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts
    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

  • #9
    Senior Coder
    Join Date
    Apr 2003
    Location
    England
    Posts
    1,192
    Thanks
    5
    Thanked 13 Times in 13 Posts
    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
    Last edited by ghell; 02-10-2005 at 08:38 AM. Reason: typo

  • #10
    Regular Coder
    Join Date
    Aug 2002
    Location
    USA
    Posts
    478
    Thanks
    0
    Thanked 2 Times in 2 Posts
    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

  • #11
    Regular Coder
    Join Date
    Aug 2002
    Location
    USA
    Posts
    478
    Thanks
    0
    Thanked 2 Times in 2 Posts
    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


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •