Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26

Discussione: [ASP] Invio foto

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    172

    [ASP] Invio foto

    Salve ragazzi, sto battagliando da ore, ma nn riesco a risolvere sto problema:

    ho un codice per fare l'upload di immagini e funziona bene. Il form della pagina dev'essere impostato come "multipart/form-data".

    Il fatto è che devo mandare dalla stessa pagina sia l'immagine, sia aggiornare un database, ma i form devono avere un enctype diverso.

    Le ho provate tutte, tranne quella giusta... come si potrebbe fare?

    Nn vorrei far fare a chi inserisce i dati nel db un doppio passaggio e cioè prima ii dati nel db poi in aun'altra pagina l'invio dell'immagine.

    Questo è un problema po ne avrei un'altro ma procediamo per gradi..

    grazie in anticipo

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Se c'è un upload deve esserci il "multipart/form-data".
    Ciò non esclude però che oltre alla foto tu possa inviare anche i campi di tipo testo tradizionali.
    Dipende dal tipo di upload che usi.

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    172
    Utlizzo quello di aspcode.it
    codice:
    <%
    
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Upload con ASP by ASPCode.it - http://www.aspcode.it						 '
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'variabili di configurazione
    Dim folder
    folder = "ProgettoCasa\public"				'directory sul server con accesso in scrittura
    'fine variabili di configurazione
    
    Response.Expires=0
    Response.Buffer = TRUE
    Response.Clear
    
    Sub BuildUploadRequest(RequestBin)
    	PosBeg = 1
    	PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    	boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    	boundaryPos = InstrB(1,RequestBin,boundary)
    		Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
    		Dim UploadControl
    		Set UploadControl = CreateObject("Scripting.Dictionary")
    		'Get an object name
    		Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
    		Pos = InstrB(Pos,RequestBin,getByteString("name="))
    		PosBeg = Pos+6
    		PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
    		Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    		PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
    		PosBound = InstrB(PosEnd,RequestBin,boundary)
    			If  PosFile<>0 AND (PosFile<PosBound) Then
    			PosBeg = PosFile + 10
    			PosEnd =  InstrB(PosBeg,RequestBin,getByteString(chr(34)))
    			FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    			UploadControl.Add "FileName", FileName
    			Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
    			PosBeg = Pos+14
    			PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    			ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    			UploadControl.Add "ContentType",ContentType
    			PosBeg = PosEnd+4
    			PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
    			Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    			Else
    			Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
    			PosBeg = Pos+4
    			PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
    			Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    		End If
    		UploadControl.Add "Value" , Value	
    		UploadRequest.Add name, UploadControl	
    		BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
    	Loop
    End Sub
    Function getByteString(StringStr)
     For i = 1 to Len(StringStr)
     	char = Mid(StringStr,i,1)
    	getByteString = getByteString & chrB(AscB(char))
     Next
    End Function
    Function getString(StringBin)
     getString =""
     For intCount = 1 to LenB(StringBin)
    	getString = getString & chr(AscB(MidB(StringBin,intCount,1))) 
     Next
    End Function
    
    byteCount = Request.TotalBytes
    
    RequestBin = Request.BinaryRead(byteCount)
    Dim UploadRequest
    Set UploadRequest = CreateObject("Scripting.Dictionary")
    
    BuildUploadRequest  RequestBin
    
    contentType = UploadRequest.Item("foto").Item("ContentType")
    filepathname = UploadRequest.Item("foto").Item("FileName")
    filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
    value = UploadRequest.Item("foto").Item("Value")
    
    'Create FileSytemObject Component
    Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
    
    'Create and Write to a File
    Set MyFile = ScriptObject.CreateTextFile(Server.mappath(folder)&"\"&filename)
     
    For i = 1 to LenB(value)
    	MyFile.Write chr(AscB(MidB(value,i,1)))
    Next
     
    MyFile.Close
    %>
    
    <html>
    <head>
    	<title>UPLOAD FILE</title>
    </head>
    <body>
    
    
    <table border=0 width=360 bgcolor=#40576f cellspacing=1 align=center>
    	<tr>
    		<td width=400 align=center bgcolor=#40576f><FONT FACE="tahoma" color=#ffffff size=2>Il file <%=filename%> è stato uploadato con successo.</FONT></td>
    	</tr>
      <tr>
        <td width="400" height="30" bgcolor="#E6E6FF" align=center>&lt; &lt; UPLOAD DI UN ALTRO FILE</font></td>
      </tr>
      <tr>
        <td width="400" height="10" bgcolor="#40576f" align=right>www.aspcode.it</font></td>
      </tr>
    </table>
    
    
    </body>
    </html>
    Mi succede questo:

    se mando il form con enctype="multipart/form-data" nn arrivano alla pagina i campi di tipo testo..

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Con questo script invii solo file.
    Con questo invece anche altri campi:
    http://freeasp.html.it/articoli/view...olo.asp?id=169


    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    172
    Ti ringrazio ora me lo studio.

    Un'altra cosa:

    è possibile con questo codice inviare + di un file alla volta per esempio tre immagini, sempre dallo stesso form?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Si.
    Le potenzialità sono abbastanza limitate in termini performance, quindi per mandare file di grandi dimensioni ti suggerisco di lasciar perdere da subito.

    Roby

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    172
    Grazie ora provo, Ciao

  8. #8
    a me da questo errore:
    codice:
    Microsoft VBScript runtime error '800a01a8' 
    
    Object required: 'Item(...)' 
    
    /public/upload/upload.asp, line 78

    la riga 78 è:

    codice:
    contentType = UploadRequest.Item("foto").Item("ContentType")

    ho provato a fare upload di un file .gif piccolissimo
    ..: Serie A :..
    ..: FORZA PALERMOOOOoooo.....

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    172
    Lo sto provando ora. Ti farò sapere.

    Cmq il file upload che hai nn mi sembra quello suggerito da Roby_72
    a dopo

  10. #10

    è lui ho fatto copia incolla....
    ..: Serie A :..
    ..: FORZA PALERMOOOOoooo.....

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.