Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Problema con upload multiplo

    Ciao a tutti! Ho un problema con l'upload di più file alla volta. Utilizzo lo script qui sotto ma, invece di uploadare tutti i file in contemporanea, mi uploada solo il primo, tralasciando gli altri!! Perchè???

    Dunque, il form è il seguente:
    codice:
    <form method="post" action="<%= url %>?action=upload&fdr=<%= cartella %>" enctype="multipart/form-data">
      
    
     
        <input type="file" name="file1">
      </p>
      
    
     
        <input type="file" name="file2">
      </p>
      
    
     
        <input type="file" name="file3">
      </p>
      
    
     
        <input type="file" name="file4">
      </p>
      
    
     
        <input type="file" name="file5">
      </p>
      
    
    
        <input type="submit" value="Inserisci file">
      </p>
    </form>
    Mentre il codice che dovrebbe uploadare il tutto è questo:
    codice:
    if action = "upload" then
    
    dim percorso, ByteRicevuti, DatiRicevuti, i, FileBinario, FirmaFile
    dim ArrPezzi, item, Inizio, Intestazione, ContenutoFile, j
    
    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)
    
    		percorso = session("cartella")
    
    '-----------------------------------
    ' PRIMO FILE
    '-----------------------------------
    dim NomeUpload, NomeFile, FSO, Upload1, DimensioneFile1
    dim EstensioneFile1, NomeFile1, textStream
    
    		' Qui recupero il file da uploadare (se presente) e lo scrivo
    		' sul server
    		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
    
    '-----------------------------------
    ' SECONDO FILE
    '-----------------------------------
    		
    dim DimensioneFile2, EstensioneFile2, NomeFile2, Upload2
    
    		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
    
    '-----------------------------------
    ' TERZO FILE
    '-----------------------------------
    dim DimensioneFile3, EstensioneFile3, NomeFile3, Upload3
    
    		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
    
    '-----------------------------------
    ' QUARTO FILE
    '-----------------------------------
    dim DimensioneFile4, EstensioneFile4, NomeFile4, Upload4
    
    		if instr(Intestazione,"file4") > 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")
    				Upload4 = True
    				DimensioneFile4 = len(ContenutoFile)
    				EstensioneFile4 = right(ContenutoFile,3)
    				NomeFile4 = NomeFile
        			Set textStream = FSO.CreateTextFile(server.mappath(percorso & "/" & NomeFile4), True, False)
        			textStream.Write ContenutoFile
        			textStream.Close
        			Set textStream = Nothing
    	   			Set FSO = Nothing
        	  end if
    		end if
    
    '-----------------------------------
    ' QUINTO FILE
    '-----------------------------------
    dim DimensioneFile5, EstensioneFile5, NomeFile5, Upload5
    
    		if instr(Intestazione,"file5") > 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")
    				Upload5 = True
    				DimensioneFile5 = len(ContenutoFile)
    				EstensioneFile5 = right(ContenutoFile,3)
    				NomeFile4 = NomeFile
        			Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile5), True, False)
        			textStream.Write ContenutoFile
        			textStream.Close
        			Set textStream = Nothing
    	   			Set FSO = Nothing
        	  end if
    		end if
    
    
    	next
    
    
    
    Response.Write "<font color=red>Sono stati uploadati i seguenti file nella cartella " & percorso & ":
    "
    
    
    If Upload1 = true then
    	Response.Write "- " & NomeFile1 & "(" & DimensioneFile1*0.001 & "kb)"
    End If
    
    If Upload2 = true then
    	Response.Write "- " & NomeFile2 & "(" & DimensioneFile2*0.001 & "kb)"
    End If
    
    If Upload3 = true then
    	Response.Write "- " & NomeFile3 & "(" & DimensioneFile3*0.001 & "kb)"
    End If
    
    If Upload4 = true then
    	Response.Write "- " & NomeFile4 & "(" & DimensioneFile4*0.001 & "kb)"
    End If
    
    If Upload5 = true then
    	Response.Write "- " & NomeFile5 & "(" & DimensioneFile5*0.001 & "kb)"
    End If
    
    response.write "</font>"
    
    End if
    Se avete qualche idea....
    Grazie! Ciao!!

  2. #2
    non trovo più il sito ufficiale, ma qui c'è (dal sito di roby) un riferimento alla mitica classe di BAOL

    http://www.creamweb.it/script/mostra.../?id_script=12

    non ho letto il tuo codice, ma questa classe risolverà sicuramente i tuoi problemi
    san imente saluta

    * http://simonecingano.it *

  3. #3
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il problema di quello script, noto ormai da sempre ma mai corretto è che dal secondo file in poi c'è un errore di stampa.

    Al posto di questo:

    codice:
    i = instr(Intestazione,"filename = ")
    devi mettere questo:

    codice:
    i = instr(Intestazione,"filename=")
    Roby

  4. #4
    Wow! Grazie 1000 Roby!!! Sei la mia salvezza!
    Ora lo provo e vedo se va. Grazieeeee!

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    172
    Ciao e scusate l'intromissione.

    Ho lo stesso codice ma mi capita un problema leggermente diverso:

    Ho tre foto da inviare, se inserisco solo la prima tutto OK, ma se inserisco la seconda e la terza, ques'ultima va ad inserisrsi nella prima, mentre per la seconda nn c'è problema.

    Il codice fa un upload delle foto e poi crive in un db mysql:

    codice:
    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
    QUA INSERISCO I CAMPI DEL FORM
    
    il codice seeguente upload le foto:
    
    		if instr(Intestazione,"foto") > 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
    		   else
    		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,"foto2") > 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,"foto3") > 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
    
    mentre queste sono le variabili da inserire nel db.
    
    foto1 = "public/immagini/" & NomeFile1
    foto2 = "public/immagini/" & NomeFile2
    foto3 = "public/immagini/" & NomeFile3
    In pratica quando è presente la terza foto la variabile NomeFile1 viene sostituita dalla variabile NomeFile2 e nn riesco a capire xchè.

    Qualcuno saprebbe aiutarmi per fvore?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Controlla i "name" dati nel form di invio.

    Roby

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    172
    Si gia fatto, si chiamano foto, foto2, foto3,

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Chiamali foto1, foto2 e foto3

    Roby

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    172
    Li ho messi foto, fotodue, fototre, quindi tutto testo pensando che durante l'elaborazione binaria creassero dei problemi, nn so che pensare, il risultato è identico

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non hai capito...
    Devi scrivere foto1, foto2 e foto3, non è difficile.

    Roby

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.