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

    Upload di due file assieme

    Ciao a tutti, sto provando ad adattare lo script trovato su html.it per uploadare file, ma non riesco ad adattarlo alle mie esigenze, io devo fare l'upload di due file assieme, ed ho modificato la form così:

    codice:
    <form action="upload.asp" method="post" enctype="multipart/form-data">
    <table width="400" border="0" align="center">
      <tr>
        <td><font size="2" face="Arial, Helvetica, sans-serif">Foto piccola, larghezza 90 pixel</font></td>
        <td colspan="2"><input type="file" name="file1"></td>
        </tr>
      <tr>
        <td><font size="2" face="Arial, Helvetica, sans-serif">Foto grande, larghezza 250 pixel </font></td>
        <td colspan="2"><input type="file" name="file2"></td>
        </tr>
      <tr>
        <td><font size="2" face="Arial, Helvetica, sans-serif"></font></td>
        <td></td>
        <td></td>
      </tr>
      <tr>
        <td><font size="2" face="Arial, Helvetica, sans-serif"></font></td>
        <td></td>
        <td></td>
      </tr>
    </table>
    
    
          
      <input type="submit" value="Upload">
    </p>
    </form>
    E lo script come da istruzioni così:

    codice:
    <%
    'Questa variabile setta il percorso di dove effettuare l'upolad
    'la cartella non puo non esistere lo script non la crea ! ! !
    
    percorso = "/Immagini/"
    
    ByteRicevuti = Request.TotalBytes
    
    if ByteRicevuti > 0 then
    	DatiRicevuti = Request.BinaryRead(ByteRicevuti)
    	For i = 1 To lenB(DatiRicevuti)
    		FileBinario = FileBinario & chr(ascB(midB(DatiRicevuti,i,1)))
    	Next
    	FirmaFile = left(FileBinario,instr(FileBinario,"" & vbCrLf)-1)
    	ArrPezzi = split(FileBinario,FirmaFile)
    
    	for item = 1 to ubound(ArrPezzi)-1
    		Inizio = instr(ArrPezzi(item),"" & vbCrLf & "" & vbCrLf)
    		Intestazione = left(ArrPezzi(item),Inizio-1)
    		Inizio = Inizio + len("" & vbCrLf) + len("" & vbCrLf)
    	    	ContenutoFile = mid(ArrPezzi(item),Inizio,len(ArrPezzi(item))-Inizio-1)
    
    		' Recupero i campi se sono compilati
    		'if instr(Intestazione,"testo1") > 0 then
    		'	testo1 = ContenutoFile
    		'end if
    
    		' Nel caso in cui fossero presenti piu campi basta duplicare
    		' la condizione cambiando unicamente il nome del campo
    		' es.
    		'if instr(Intestazione,"testo2") > 0 then
    		'	testo2 = ContenutoFile
    		'end if
    		
    		'if instr(Intestazione,"testo3") > 0 then
    		'	testo3 = ContenutoFile
    		'end if		
    
    		' Qui recupero il file da uploadare (se presente) e lo scrivo
    		' sul server
    		'response.write(instr(Intestazione,"file1"))
    		if instr(Intestazione,"file1") > 0 then
    		    i = instr(Intestazione,"filename=")
    			j = instr(i + 10,Intestazione,chr(34))
    			NomeUpload = mid(Intestazione,i + 10,j-i-10)
    			i = instrRev(NomeUpload,"\")
    			if i<>0 then
        		    NomeFile = mid(NomeUpload,i + 1)
        		else
        			NomeFile = NomeUpload
        		end if
          		if i<>0 then
    				Set FSO = CreateObject("Scripting.FileSystemObject")
    				Upload1 = True
    				DimensioneFile1 = len(ContenutoFile)
    				EstensioneFile1 = right(ContenutoFile,3)
    				NomeFile1 = NomeFile
        			Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile1), True, False)
        			textStream.Write ContenutoFile
        			textStream.Close
        			Set textStream = Nothing
    	   			Set FSO = Nothing
        	   end if
    		end if
    
    		' Lo stesso discorso vale anche per i campi dei file :
    		' Nel caso in cui fossero presenti piu file basta duplicare
    		' la condizione cambiando unicamente il nome del campo
    		' es.
    
    		if instr(Intestazione,"file2") > 0 then
    		    i = instr(Intestazione,"filename = ")
    			j = instr(i + 10,Intestazione,chr(34))
    			NomeUpload = mid(Intestazione,i + 10,j-i-10)
    			i = instrRev(NomeUpload,"\")
    			if i<>0 then
        		    NomeFile = mid(NomeUpload,i + 1)
        	 else
        		NomeFile = NomeUpload
        		end if
          		if i<>0 then
    				Set FSO = CreateObject("Scripting.FileSystemObject")
    				Upload2 = True
    				DimensioneFile2 = len(ContenutoFile)
    				EstensioneFile2 = right(ContenutoFile,3)
    				NomeFile2 = NomeFile
        		Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile2), True, False)
        		textStream.Write ContenutoFile
        			textStream.Close
        			Set textStream = Nothing
    	   			Set FSO = Nothing
        	  end if
    		end if
    
    		'if instr(Intestazione,"file3") > 0 then
    		'    i = instr(Intestazione,"filename = ")
    		'	j = instr(i + 10,Intestazione,chr(34))
    		'	NomeUpload = mid(Intestazione,i + 10,j-i-10)
    		'	i = instrRev(NomeUpload,"\")
    		'	if i<>0 then
        	'	    NomeFile = mid(NomeUpload,i + 1)
        	'	else
        	'		NomeFile = NomeUpload
        	'	end if
          	'	if i<>0 then
    		'		Set FSO = CreateObject("Scripting.FileSystemObject")
    		'		Upload3 = True
    		'		DimensioneFile3 = len(ContenutoFile)
    		'		EstensioneFile3 = right(ContenutoFile,3)
    		'		NomeFile3 = NomeFile
        	'		Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile3), True, False)
        	'		textStream.Write ContenutoFile
        	'		textStream.Close
        	'		Set textStream = Nothing
    	   	'		Set FSO = Nothing
        	'  end if
    		'end if
    	next
    
    ' Da qui in poi è possibile fare esegiure allo script altre operazioni
    ' inserire qui gli script aggiuntivi che si vogliono eseguire dopo l'upload
    ' Per esempio visualizzare quello che è stato inserito all'interno del
    ' compo testo
    
    'Response.Write "Il valore immesso nella testo1 è " & testo1 & "
    "
    
    ' Utilizzando il sistema descritto sopra è possibile visualizzare campi
    ' testo aggiuntivi presenti nel form
    ' Response.Write "Il valore immesso nella testo2 è " & testo2 & "
    "
    ' Response.Write "Il valore immesso nella testo3 è " & testo3 & "
    "
    
    ' E la stessa cosa per i campi dove è stato eseguito l'upload dei file
    
    If Upload1 = true then
    	Response.Write "
    La dimensione del file che hai uploadato è di " & DimensioneFile1*0.001 & "kb"
    	Response.Write "
    Grazie di aver inviato il tuo file"
    End If
    
    If Upload2 = true then
    	Response.Write "
    La dimensione del file che hai uploadato è di " & DimensioneFile2*0.001 & "kb"
    	Response.Write "
    Grazie di aver inviato il tuo file"
    End If
    
    'If Upload3 = true then
    '	Response.Write "
    La dimensione del file che hai uploadato è di " & DimensioneFile3*0.001 & "kb"
    '	Response.Write "
    Grazie di aver inviato il tuo file"
    'End If
    
    End if
    %>
    Così facendo pero' mi fà l'upload solo del primo file, e non del secondo, perchè?


    Ciao

  2. #2
    Utente di HTML.it L'avatar di Luis33
    Registrato dal
    May 2003
    Messaggi
    975
    cambia script. usa l'upload di baol74.
    ... Sono graditi codes, esempi pratici, suggerimenti, consigli e critiche...
    "Ai posteri l'ardua sentenza..."
    Tante grazie
    Saluti
    Luis 33

  3. #3
    Originariamente inviato da Luis33
    cambia script. usa l'upload di baol74.

    Perchè con questo non si puo' fare? Se non ho capito male, lo script che dici tu si appoggia ad un dll vero? Se si non ho la possibilità di installarle.

    Ciao

  4. #4
    Utente di HTML.it L'avatar di Luis33
    Registrato dal
    May 2003
    Messaggi
    975
    Originariamente inviato da luca.gigliofior
    Perchè con questo non si puo' fare? Se non ho capito male, lo script che dici tu si appoggia ad un dll vero? Se si non ho la possibilità di installarle.

    Ciao
    VVoVe: si appoggia a che? ad una dll? assolutamente falso... lo utilizzo su aruba, in hosting per cui non ho nessuna possibilità di installare nulla di nulla.
    ... Sono graditi codes, esempi pratici, suggerimenti, consigli e critiche...
    "Ai posteri l'ardua sentenza..."
    Tante grazie
    Saluti
    Luis 33

  5. #5
    Ciao Luca, vai tranquillo lo script che usi l'ho adottato anch'io in un mio sito e va alla grande.
    Fai attenzione che nel tuo c'è un errore :
    dopo la riga
    if instr(Intestazione,"file2") > 0 then

    la riga successiva
    i = instr(Intestazione,"filename = ")

    deve essere in realtà
    i = instr(Intestazione,"filename=")

    Altrimenti cerca la stringa con spazio prima e dopo l'uguale che non troverà mai, e quindi non ti fa il secondo upload.

    Ti avviso inoltre che questo script così come è stato scritto, non funziona su sistemi Mac, perchè queste macchine non inviano tutto il nome completo di path, ma solo il nome file finale.
    La modifica per renderlo compatibile è davvero semplice.
    Basta modificare il secondo test presente nel blocco relativo alla gestione di ogni file da uploadare, sostituendo :
    If i<>0 then
    con
    If NomeFile<>""

    Mi raccomando, solo il secondo test per i<>0 va cambiato, il primo no.
    Questo è l'esempio :

    NomeFile=""
    if i<>0 then
    NomeFile = mid(NomeUpload,i + 1)
    else
    NomeFile = NomeUpload
    end if
    If NomeFile<>""
    ...... tutto il resto dello script



    Ciao !

  6. #6
    Originariamente inviato da wildsurf
    Ciao Luca, vai tranquillo lo script che usi l'ho adottato anch'io in un mio sito e va alla grande.
    Fai attenzione che nel tuo c'è un errore :
    dopo la riga
    if instr(Intestazione,"file2") > 0 then

    la riga successiva
    i = instr(Intestazione,"filename = ")

    deve essere in realtà
    i = instr(Intestazione,"filename=")
    Grazie mille!!! Ora funziona perfettamente

  7. #7
    Originariamente inviato da luca.gigliofior
    Grazie mille!!! Ora funziona perfettamente
    Bene !
    Se poi vuoi migliorare i tempi di upload, qui trovi una dritta di Baol che ti assicuro funziona davvero bene : http://forum.html.it/forum/showthrea...hreadid=558867 !

    Ciao !

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.