Visualizzazione dei risultati da 1 a 3 su 3

Discussione: upload immagini

  1. #1

    upload immagini

    Buongiorno, dovrei fare due l'upload di immagini e due inserimenti dati un database contemporaneamente, vi chiedo prima di tutto se è possibile. Mi spiego meglio io ho creato una pagina "inseriremoneta.asp" con all'interno un form dove ci sono 2 campi che prendono dati di testo (nessun problema) e poi altri due campi che invece fanno l'upload di un file (quelli con "sfoglia"), infine ho il tasto invia.
    Allaro le mie domande prima di iniziare tutto sono:
    1) si possono fare 2 upload contemporaneamente?
    2) devo mettere qualcosa di particolare nelle proprietà input del campo upload?
    3) mi potete consigliare qualche script ch si adatta alle mie esigenze o anche tutorial che mi inserisca il collegamento dell'immagine nel database? (io ho trovato questo:http://www.webmasterpoint.org/asp/pratica/65.asp , ma non capisco dove devomettere le pagine upload.asp ed esegui.asp!)
    4) il datatabase per i campi dell' upload devono essere settati in modo particolare? Oppure va bene la tipo testo?

    Di solito sono abituato a creare una seconda pagina "inseriredatimoneta.asp" che mi prenda i dati dalla prima pagina "inseriremoneta.asp" e li inserisca in un database o fare altro. Ora nella pagina "inseriredatimoneta.asp" devo mettere il futuro codice che mi fa l'upload?Oppure lo devo direttamente nella pagina dove c'è il form?

    Scusate se sono troppe le domande..ma è un pò difficile l'upload di immagini nel database!
    Qui sotto inserisco la pagina inseriscimoneta.asp dove c'è il form:

    <form name="form1" method="post" action="inseriscidatimoneta.asp"> <input type="text" name="textfield2">
    <input name="textfield" type="text" maxlength="4">
    <input type="file" name="file">
    <input type="file" name="file2">
    <input type="submit" name="Submit" value="Invia">
    </form>

    non bisogna modificare niente nel form?
    GRAZIE

  2. #2
    Questo è un form per inserire un file (per esempio un'immagine) e un campo di testo:
    codice:
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_openBrWindow(theURL,winName,features) { //v2.0
      window.open(theURL,winName,features);
    }
    //-->
    </script>
    
    <form name="formfile" method="post">
    <div align="center">Carica file sul sito
    <input type="button" name="link" value="Seleziona documento" onclick="javascript: MM_openBrWindow('upload/uploadform.asp','','width=500,height=300,top=120,left=120');"/></div>
    
    
    </form>
    <form name="notizie" method="post" action="notizie.asp">
    <div align="center">Titolo
    <input type="text" name="titolo" /></div>
    
    
      
      <div align="center"><input type="submit" name="submit" value="Invia" /><input type="reset" name="reset" value="Annulla" /></div>
    </form>
    Il pulsante "Seleziona documento" apre quest'altro form (uploadform.asp nella cartella upload):
    codice:
     <form method="post" enctype="multipart/form-data" action="upload.asp">
            <p align="center">File: 
                <input type="file" name="link" size=30>
    			
    			            
    
    
                <input type="submit" name="Enter" value="Conferma"></p>
        </form>
    La pagina ASP che effettua l'upload del documento (o immagine) sul server (upload.asp) è:
    codice:
    <%
    Server.ScriptTimeout = 200
    
    'variabili di configurazione
    Dim folder
    folder = "/immagini"  			'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("link").Item("ContentType")
    filepathname = UploadRequest.Item("link").Item("FileName")
    filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
    session("link") = filename
    value = UploadRequest.Item("link").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>
    	
    	<script language="JavaScript">
         function close_reload() {
           window.opener.location.reload();
    	   window.close();
      	}
    	</script>
    
    
    
    </head>
    <body>
    
    
    
     <center><div>File caricato</div>
     
    
    </p>
    <div>Chiudi finestra</div></center>
    </body>
    </html>
    Con questa procedura, prima scegli il file da caricare sul server e ne fai l'upload, poi inserisci i campi nel form "normale" per la relativa elaborazione (che, in questo caso, viene eseguita dalla pagina notizie.asp, come puoi vedere dall'action del primo form). L'elaborazione può consistere nell'inserimento dei dati in un database, nella loro presentazione a video, ecc..........il nome del file caricato lo puoi inserire nel database sia scrivendolo a mano nell'altro form, sia (meglio) recuperandolo dal form di upload (per esempio con una variabile di sessione).
    I files (o immagini) da caricare possono benissimo essere due, puoi ottenere questo raddoppiando il "formfile" (formfile1 e formfile2) e, dopo i due upload, compilare e inoltrare il form con i campi di testo (nell'esempio: il form notizie).

    Spero che queste indicazioni ti possano essere di aiuto...........

    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  3. #3
    I campi nel form sono : vauta e data (di testo), dritto e rovescio (di testo i cui voglio fare l'upload)
    Io ho provato in questo modo:


    <%
    ' Imposta il tempo max di esecuzione dello script (espresso in millisecondi)
    Server.ScriptTimeout = 100000


    Response.Expires=0
    Response.Buffer = TRUE
    Response.Clear

    'impostazioni variabili
    byteCount = Request.TotalBytes
    RequestBin = Request.BinaryRead(byteCount)
    Set UploadRequest = CreateObject("Scripting.Dictionary")
    BuildUploadRequest RequestBin

    'individua il tipo di file che si cerca di fare l upload
    contentType = UploadRequest.Item("file").Item("ContentType")

    'intero percorso del file
    filepathname = UploadRequest.Item("file").Item("FileName")

    '****************************** CONTROLLI IMMAGINE

    'controllo tipo immagine
    tipo = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"."))

    'cambiare la scrita zip e gz qui sotto per inserire la sigla di un altro tipo di file
    'Se si vuole permettere l'upload di qualsiasi tipo di file cancellare o commentare
    'le successive 4 linee di codice e l'ultimo END IF della pagina upload.asp
    If tipo <> "jpg" AND tipo <> "gif" then
    Response.Write ("Errore Upload. Non è possibile fare upload di un file ." & tipo)
    Response.End
    else

    ' calcolo del peso della immagine
    'imposta qui, il peso max. 9000 vuol dire 9 Kb circa
    IF byteCount > 500000 THEN
    Response.Write ("Errore Upload. File troppo grande!")
    Response.End
    else

    '*********************************** NOME FINALE DEL FILE e UPLOAD
    nomefile = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))

    'in questa variabile viene salvato il nome del file che sarà del tipo 2311235.gif
    filename = nomefile

    value = UploadRequest.Item("file").Item("Value")
    Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
    pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_I NFO")))-14

    'da questa riga di codice si specifica l'indirizzo relativo dove sarà inserito il file
    Set MyFile = ScriptObject.CreateTextFile(Server.mappath("../file") & filename)
    For i = 1 to LenB(value)
    MyFile.Write chr(AscB(MidB(value,i,1)))
    Next

    MyFile.Close

    End If
    End If
    %>
    <%
    valuta=request.form("valuta")
    data=request.form("data")
    dritto=request.form("dritto")
    rovescio=request.form("rovescio")
    'apro la connessione
    Set conn3 = Server.CreateObject("ADODB.Connection")
    conn3.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/dbmonete.mdb")
    Set rs3=server.CreateObject("ADODB.Recordset")
    rs3.Open "tabmonete",conn3,3,3
    rs3.AddNew
    rs3("valuta")=valuta
    rs3("data")=data
    rs3("dritto")=dritto
    rs3("rovescio")=rovescio
    rs3.update
    rs3.Close

    conn3.Close
    %>


    <% Response.Redirect("paginastato.asp?ID="&ID&"") %>


    il file esegui.asp :

    <%
    'senza questo file non viene effettuato l upload
    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")
    Pos = InstrB(BoundaryPos,RequestBin,getByteString("Conte nt-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("filen ame="))
    PosBound = InstrB(PosEnd,RequestBin,boundary)
    If PosFile<>0 AND (PosFile 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),Requ estBin,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
    %>


    mi da questo errore :
    Microsoft VBScript compilation error '800a03ee'

    Expected ')'

    /collezioni/esegui.asp, line 22

    If PosFile<>0 AND (PosFile PosBeg = PosFile + 10



    Io ho preso questo script ma non riesco ad adattarlo per due upload dei campi "dritto" e "rovescio"...mi potete dare una mano?GRAZIE

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.