Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3

    nomi dei fields del form di upload..

    salve a tutti...ho un problema
    utilizzo il classico upload.asp insieme al form tradizionale di upload
    ho 2 filefields nel form:

    <FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="uploadImage.asp">
    <table width="627" border="0" cellpadding="5" cellspacing="0">
    <tr>
    <td width="73">[img]/images/spacer.gif[/img]</td>
    <td width="538" bgcolor="#FFFF99"><input name="FILEDESC" type=FILE size=60 />
    <input name="FILEDETAIL" type="file" size="60" />


    <input name="SUBMIT" type=SUBMIT value="Upload!" /></td>
    </tr>
    </table>
    </FORM>


    riporto adesso un pezzo di

    uploadImage.asp:


    <%
    dim file_img
    dim file_thmb

    Dim Uploader, File
    Set Uploader = New FileUploader
    pSuccess = 0

    Uploader.Upload()
    if Uploader.Files.Count <> 0 Then
    For Each File In Uploader.Files.Items
    if right(File.FileName,4)<>".gif" and right(File.FileName,4)<>".jpg" then
    response.redirect "message.asp?message="&Server.Urlencode("Solo GIF o JPG")
    else

    pSuccess = 1
    ' Save the file
    File.SaveToDisk server.MapPath("\")&pPathForUpload
    end if

    Next
    end If

    %>


    questo mi uppa entrambi o solo uno dei files nella cartella scelta.
    però pratikamente per ogni file uplodato, mi servirebbe sapere da quale dei 2 FileField del form arriva.
    come posso fare?
    graz

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    file.InputName
    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3
    sembra non funzionare, forse sto sbagliando qualkosa?

    if file.inputname="FILEDESC" then
    file_thmb=File.FileName
    else
    file_img=File.FileName
    end if

    Microsoft VBScript runtime error '800a01b6'
    Object doesn't support this property or method: 'inputname'


    UPLOAD.ASP ke sto utilizzando:

    codice:
    <%
    '***************************************
    ' 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
    %>

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Pensavo parlassi dell'upload di Baol74... questo non lo conosco.

    Roby

  5. #5
    prova a fare una funzione che prenda il valorfe di "sInputName" una volta che è inizializzato perchè non vedo metodi che restituiscano quel valore (sempre che sia quello giusto)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3
    e infatti alla fine o fatto un compare sull' sInputName sigh vabbè
    grazie e tutti
    ciau

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.