Visualizzazione dei risultati da 1 a 6 su 6

Discussione: modifica modulo upload

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    90

    modifica modulo upload

    ciao a tutti,

    ho questi file:

    inizia.asp
    codice:
    <%@Language=VBScript%>
    <%Response.Buffer = True%>
    <html>
    <head>
    <title>Test</title>
    </head>
    <body>
    
    <div align="center">
    <center>
    <FORM METHOD="Post" ENCTYPE="multipart/form-data" ACTION="outputFile.asp">
    Upload:
    
    <INPUT TYPE="file" NAME="blob">
    
    
    
    <INPUT TYPE="submit" NAME="Enter" value="Prosegui">
    </FORM>
    </center>
    </body>
    </html>
    outputfile.asp
    codice:
      
    <%Response.Expires=0
      Response.Buffer = TRUE
      Response.Clear
      byteCount = Request.TotalBytes
      RequestBin = Request.BinaryRead(byteCount)
      Dim Cartella
      'inserire il percorso della sotto-cartella in public, ESISTENTE, nella quale verranno inseriti i files
      '-----------------------------------------------------
      Cartella = "../public/"
      '------------------------------------------------------
      Dim UploadRequest
      Set UploadRequest = CreateObject("Scripting.Dictionary")
      BuildUploadRequest  RequestBin
      contentType = UploadRequest.Item("blob").Item("ContentType")
      filepathname = UploadRequest.Item("blob").Item("FileName")
      filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
      value = UploadRequest.Item("blob").Item("Value")
    
      'Create FileSytemObject Component
      Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
    
    
    pathEnd = Cartella 
    Set MyFile = ScriptObject.CreateTextFile(Server.mappath(pathEnd & filename), false)
    
     
      For i = 1 to LenB(value)
    	 MyFile.Write chr(AscB(MidB(value,i,1)))
      Next
      MyFile.Close%>
      
      <%=filename%> caricato con successo!
    upload.asp
    codice:
    <%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("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%>
    Vorrei fare in modo che usando lo stesso "script" mi faccia l'upload di due file differenti (due campi input per intenderci)
    Ho fatto qualche prova ma senza successo.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Nel form:
    codice:
     <INPUT TYPE="file" NAME="blob2">
    in outputfile.asp
    codice:
     
     contentType2 = UploadRequest.Item("blob2").Item("ContentType")
      filepathname2 = UploadRequest.Item("blob2").Item("FileName")
      filename2 = Right(filepathname,Len(filepathname2)-InstrRev(filepathname2,"\"))
      value2 = UploadRequest.Item("blob2").Item("Value")
    e...
    codice:
    Set MyFile = ScriptObject.CreateTextFile(Server.mappath(pathEnd & filename2), false)
    
     
      For i = 1 to LenB(value2)
    	 MyFile.Write chr(AscB(MidB(value2,i,1)))
      Next
      MyFile.Close
    Ma non so se funziona...

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    90
    Grazie mille!! Un piccolo errore ma una volta corretto funziona tutto alla perfezione

    Posto il file corretto, magari potrà essere utile ad altri utenti
    codice:
     
    <%Response.Expires=0
      Response.Buffer = TRUE
      Response.Clear
      byteCount = Request.TotalBytes
      RequestBin = Request.BinaryRead(byteCount)
      Dim Cartella
      'attenzione, unica riga da modificare
      'inserire il percorso della sotto-cartella in public, ESISTENTE, nella quale verranno inseriti i files
      '-----------------------------------------------------
      Cartella = "../public/"
      '------------------------------------------------------
      'nota, se vuoi fare upload in cartella nella quale i files siano raggiungibili solo via FTP (per massima sicurezza)
      'puoi cambiare il percorso, ad esempio con "/mdb-database/nomecartella/"
      'fine modifica linkbc 07/07/2008
      
      Dim UploadRequest
      Set UploadRequest = CreateObject("Scripting.Dictionary")
      BuildUploadRequest  RequestBin
      
      contentType = UploadRequest.Item("blob").Item("ContentType")
      filepathname = UploadRequest.Item("blob").Item("FileName")
      filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
      value = UploadRequest.Item("blob").Item("Value")
      
      contentType2 = UploadRequest.Item("blob2").Item("ContentType")
      filepathname2 = UploadRequest.Item("blob2").Item("FileName")
      filename2 = Right(filepathname2 ,Len(filepathname2)-InstrRev(filepathname2,"\"))
      value2 = UploadRequest.Item("blob2").Item("Value")
    
      'Create FileSytemObject Component
      Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
    
    
    pathEnd = Cartella 
    Set MyFile = ScriptObject.CreateTextFile(Server.mappath(pathEnd & filename), false)
    Set MyFile = ScriptObject.CreateTextFile(Server.mappath(pathEnd & filename2), false)
    
     
      For i = 1 to LenB(value)
    	 MyFile.Write chr(AscB(MidB(value,i,1)))
      Next
      
     
      For i = 1 to LenB(value2)
    	 MyFile.Write chr(AscB(MidB(value2,i,1)))
      Next
      
      MyFile.Close%>
      
      <%=filename%> caricato con successo!
      <%=filename2%> caricato con successo!
    @ Roby_72 quello in rosso era l'errore

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    90
    ho scoperto che le foto le carica sul server però la prima mi da questo errore:
    nella prima (primo campo input) mi dice che l'immagine non può essere aperta perchè contiene errori (ho provato anche con un file doc me lo fa scaricare vuoto) mentre nella seconda mi fa vedere l'immagine della prima

    come mai?
    ecco il codice:
    codice:
     
    <%Response.Expires=0
      Response.Buffer = TRUE
      Response.Clear
      byteCount = Request.TotalBytes
      RequestBin = Request.BinaryRead(byteCount)
      Dim Cartella
      'attenzione, unica riga da modificare
      'inserire il percorso della sotto-cartella in public, ESISTENTE, nella quale verranno inseriti i files
      '-----------------------------------------------------
      Cartella = "../public/"
      '------------------------------------------------------
      'nota, se vuoi fare upload in cartella nella quale i files siano raggiungibili solo via FTP (per massima sicurezza)
      'puoi cambiare il percorso, ad esempio con "/mdb-database/nomecartella/"
      'fine modifica linkbc 07/07/2008
      
      Dim UploadRequest
      Set UploadRequest = CreateObject("Scripting.Dictionary")
      BuildUploadRequest  RequestBin
        
      contentType = UploadRequest.Item("blob").Item("ContentType")
      filepathname = UploadRequest.Item("blob").Item("FileName")
      filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
      value = UploadRequest.Item("blob").Item("Value")
      
      contentType2 = UploadRequest.Item("blob2").Item("ContentType")
      filepathname2 = UploadRequest.Item("blob2").Item("FileName")
      filename2 = Right(filepathname2,Len(filepathname2)-InstrRev(filepathname2,"\"))
      value2 = UploadRequest.Item("blob2").Item("Value")
      
      data = day(date())&month(date())&year(date())&hour(time())&minute(time())
      filenameblob1 = data & filename
      filenameblob2 = data & filename2
    
      Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
    
    
      pathEnd = Cartella 
      Set MyFile = ScriptObject.CreateTextFile(Server.mappath(pathEnd & filenameblob1), false)
      Set MyFile = ScriptObject.CreateTextFile(Server.mappath(pathEnd & filenameblob2), false)
    
     
      For i = 1 to LenB(value)
    	 MyFile.Write chr(AscB(MidB(value,i,1)))
      Next
      
     
      For i = 1 to LenB(value2)
    	 MyFile.Write chr(AscB(MidB(value2,i,1)))
      Next
      
      MyFile.Close%>
      
      <%=filenameblob1%> caricato con successo!
      <%=filenameblob2%> caricato con successo!

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    usi due volte lo stesso nome variabile MyFile


    codice:
    pathEnd = Cartella 
    Set MyFile = ScriptObject.CreateTextFile(Server.mappath(pathEnd & filename), false)
    Set MyFile1 = ScriptObject.CreateTextFile(Server.mappath(pathEnd & filename2), false)
    
     
      For i = 1 to LenB(value)
    	 MyFile.Write chr(AscB(MidB(value,i,1)))
      Next
      
     
      For i = 1 to LenB(value2)
    	 MyFile1.Write chr(AscB(MidB(value2,i,1)))
      Next
      
      MyFile.Close
      MyFile1.Close
    usa /public/cartella_destinazione/

    in public fai una cartella e dai il nome che vuoi, non usare ../

    controlla maiuscole e minuscole per i nomi del file .Asp

    outputFile.asp nel form e dichiarato outputfile.asp


    Massimo.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    90
    Grazie mille funziona!!

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.