Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Upload testo e immagine

    Ho provato ad adattare alle mie esigenze il codice presente in questo thread
    http://forum.html.it/forum/showthrea...1&pagenumber=2
    ma purtroppo non riesco a farlo funzionare.

    Si tratta di un form che permettere di caricare sia dei campi di testo che una fotografia.

    Il codice della pagina contenente il form è il seguente:

    codice:
    
    <h1>Inserisci insegnante</h1>
    
    <p align="center"></p>
    <form enctype="multipart/form-data" method="post" action="inserisci_insegnante2.asp" name="form">
    <p align="center">
    Cognome
    
    <input name="Cognome" type="text" id="Cognome" tabindex="1" size="30" maxlength="20" />
    </p>
    <p align="center">
    Nome
    
    <input name="Nome" type="text" id="Nome" tabindex="2" size="30" maxlength="20" />
    </p>
    <p align="center">
    Fotografia
    
    <input type="file" name="nome_file" tabindex="3" size="30" maxlength="255" />
    </p>
    <p align="center">
    Strumento
    
    <input name="Luogo" type="text" id="Strumento" tabindex="4" size="60" maxlength="50" />
    </p>
    <p align="center">
    Formazione
    
    <textarea name="Formazione" cols="60" rows="10" tabindex="5"></textarea>
    </p>
    <p align="center">
    Esperienze Didattiche
    
    <textarea name="EsperienzeDidattiche" cols="60" rows="10" tabindex="6"></textarea>
    </p>
    <p align="center">
    Esperienze Artistiche
    
    <textarea name="EsperienzeArtistiche" cols="60" rows="10" tabindex="7"></textarea>
    </p>
    <p align="center">
    Altre Informazioni
    
    <textarea name="Altro" cols="60" rows="10" tabindex="8"></textarea>
    </p>
    <p align="center">
    <input type="submit" value="Inserisci insegnante" name="B1" class="pulsante">
    <input type="reset" value="Reimposta" name="B2" class="pulsante">
    </p>
    </form>
    <p align="left"></p>
    <p align="center">Torna alla gestione Insegnanti</p>
    <p align="left"></p>
    Mentre il file che esegue lo script è questo:

    codice:
    <%
    
    ' //// dichiarazione delle variabili obbligatoria
    option explicit
    
    ' //// dichiaro le variabili
    Dim folder
    Dim titolo_file
    Dim nom_file
    Dim byteCount
    Dim RequestBin
    Dim PosBeg
    Dim i
    Dim char
    Dim PosEnd
    Dim boundary
    Dim boundaryPos
    Dim Pos
    Dim intCount
    Dim Name
    Dim PosFile
    Dim PosBound
    Dim Value
    Dim FileName
    Dim ContentType
    Dim nome_file
    Dim Conn
    Dim filepathname
    Dim ScriptObject
    Dim MyFile
    Dim Sql
    Dim Rs 
    
    Dim cognome
    Dim nome
    Dim strumento
    
    ' //// Directory dove verrà caricato il file (la cartella deve avere i permessi in scrittura)
    folder = ("/public/foto/insegnanti")  
    
    ' ////// Inizio Componente Upload (prelevato su www.AspCode.it)  
    
    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
    
    ' //// Fine Componente Upload  
    
    %>
    
    
    
    <h1>Inserisci insegnante</h1>
    
    <%
    
    ' //// riempio le variabili con valori proveninti dalla form
    nome_file = UploadRequest.Item("nome_file").Item("Value")
    cognome   = UploadRequest.Item("Cognome").Item("Value")
    nome      = UploadRequest.Item("Nome").Item("Value")
    strumento = UploadRequest.Item("Strumento").Item("Value")
    
    ' CONTROLLA SE TUTTI I CAMPI SONO STATI COMPILATI
    IF cognome="" or nome="" or strumento="" then
    ' CAMPI NON COMPILATI!
    %>
    
    
    </p>
    <p align="center">Dati non inseriti correttamente...</p>
    <p align="center"></p>
    <p align="center">Riprova</p>
    
    
    </p>
    <%
    Else
    ' CAMPI COMPILATI
    
    
    ' //// connessione al DB
    
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/VivaceDB.mdb")
    
    SQL = "SELECT * FROM Insegnanti"
    
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Rs.Open SQL, Conn, 1, 2
    	
    ' //// aggiugo un nuovo record alla tabella
    Rs.AddNew
    
        Rs("Cognome") = UploadRequest.Item("Cognome").Item("Value")
        Rs("Nome") = UploadRequest.Item("Nome").Item("Value")
        Rs("Strumento") = UploadRequest.Item("Strumento").Item("Value")
        Rs("Formazione") = Replace(Replace((UploadRequest.Item("Formazione").Item("Value")), chr(13), "
    "), "'", "′")
        Rs("EsperienzeDidattiche") = Replace(Replace((UploadRequest.Item("EsperienzeDidattiche").Item("Value")), chr(13), "
    "), "'", "′")
    	Rs("EsperienzeArtistiche") = Replace(Replace((UploadRequest.Item("EsperienzeArtistiche").Item("Value")), chr(13), "
    "), "'", "′")
    	Rs("Altro") = Replace(Replace((UploadRequest.Item("Altro").Item("Value")), chr(13), "
    "), "'", "′")
        Rs("Fotografia") = False
    	
    
    ' //// controllo se caricare fotografia
    If not IsNull(nome_file) OR nome_file <> "" Then
    
    ' //// Inserimento immagine INIZIO
    
    
    
    ' //// creo il file nella folder
    	if UploadRequest.Item("nome_file").Item("FileName")="" then
    
    		Else
    
    		contentType  = UploadRequest.Item("nome_file").Item("ContentType")
    		filepathname = UploadRequest.Item("nome_file").Item("FileName")
    		filename     = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
    		value        = UploadRequest.Item("nome_file").Item("Value")
    
    	Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
    
    	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
    
    	End if
    
    ' //// Inserimento immagine FINE
    
        Rs("nome_file") = filename
    	Rs("Fotografia") = True
    Else
    	Rs("nome_file") = ""
    End if
    
    Rs.UpDate
    	
    ' //// chiudo il record set e libero le risorse
    	Rs.Close
    	Set Rs = Nothing
    
    ' //// chiudo la connessione e libero le risorse
    	Conn.Close
    	Set Conn = Nothing
    
    ' //// carico la pagina di risposta e stampo a video il link al file caricato
    	Response.Redirect("/gestione/insegnanti/vedi_insegnanti.asp")
    	
    End If 'CAMPI COMPILATI
    %>
    Mi viene dato il seguente errore:

    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A01A8)
    Necessario oggetto: '[undefined]'

    Relativo alla riga 121

    117 - ' //// riempio le variabili con valori proveninti dalla form
    118 - nome_file = UploadRequest.Item("nome_file").Item("Value")
    119 - cognome = UploadRequest.Item("Cognome").Item("Value")
    120- nome = UploadRequest.Item("Nome").Item("Value")
    121- strumento = UploadRequest.Item("Strumento").Item("Value")


    Potete aiutarmi e controllare se il mio lavoro è valido?

    Grazie...

    Rudi

  2. #2
    <p align="center">
    Strumento

    <input name="Strumento" type="text" id="Strumento" tabindex="4" size="60" maxlength="50" />
    </p>

    Cosi, forse ?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.