29 users online (1 members and 28 guests)  


  Results 1 to 5 of 5

Related

  1. How can I code this form to upload files    Forum: CGI Perl Forum
    Replies: 1
  2. Replies: 1
  3. Replies: 3
  4. Uploading and unzipping files on server    Forum: Web Hosting Forum
    Replies: 7
  5. Uploading and unzipping files on server    Forum: HTML Forum
    Replies: 7
  1. #1
    Doorknob's Avatar
    Super Newbie

    Status
    Offline
    Join Date
    Jun 2002
    Location
    Malaysia
    Posts
    316

    uploading files with pure asp and form

    i've heard that it's possible to upload files without components, using pure ASP and a HTML form. i've got a link at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnasdj01/html/asp0900.asp , but i'm not sure i understand it. could someone help me and pass on a ready made script (ASP) to me to upload files? thanks in advance

  2. #2
    QuietDean's Avatar
    Administrator

    Status
    Offline
    Join Date
    Oct 2000
    Location
    Bournemouth, UK
    Posts
    2,662
    I have one I use in work, but I am not there I will mail it home to myself and post it tonight.
    If one of our members helps you, please click the icon to add to their reputation!
    No support via email or private message - use the forums!
    Before you ask, have you Searched?

  3. #3
    QuietDean's Avatar
    Administrator

    Status
    Offline
    Join Date
    Oct 2000
    Location
    Bournemouth, UK
    Posts
    2,662
    I just got home from work, guess what I forgot to do

    I will email this thread to work. promise I will get it tommorow
    If one of our members helps you, please click the icon to add to their reputation!
    No support via email or private message - use the forums!
    Before you ask, have you Searched?

  4. #4
    QuietDean's Avatar
    Administrator

    Status
    Offline
    Join Date
    Oct 2000
    Location
    Bournemouth, UK
    Posts
    2,662
    Heres a classy Class -

    Code:
    <%
    '***************************************
    ' File:	  Upload.asp
    ' Author: Jacob "Beezle" Gilley
    ' Email:  email removed
    ' 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, sFilePath, sFileFullPath
    				Set oUploadFile = New UploadedFile
    				
    				nPosBegin = nPosFile + 10
    				nPosEnd =  InstrB(nPosBegin, biData, CByteString(Chr(34)))
    				sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
    				oUploadFile.FileFullPath = sFileName
    				oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))
    				sFileShortName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))
    				If sFileShortName <> "" Then
    				oUploadFile.FileShortName = Left(sFileShortName,Len(sFileShortName) - (Len(sFileShortName)-InStrRev(sFileShortName,"."))-1)
    				End If
    				oUploadFile.FilePath = Left(sFileName, Len(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 FileShortName
    	Public FileData
    	Public FilePath  'path to file without file name and extension
    	Public FileFullPath 'total path including name and extension
    	
    	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 SaveAsToDisk(sPath, sMyFile)   'New method that accepts file name for Save As feature
    		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 & sMyFile, 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
    %>
    Last edited by HTML; 04-22-2005 at 08:49 AM.
    If one of our members helps you, please click the icon to add to their reputation!
    No support via email or private message - use the forums!
    Before you ask, have you Searched?

  5. #5
    Doorknob's Avatar
    Super Newbie

    Status
    Offline
    Join Date
    Jun 2002
    Location
    Malaysia
    Posts
    316
    i'm in no hurry, it's just an experiment. thanks for the taking the trouble to get it for me



Tags for this Thread