Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problema file name

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    37

    Problema file name

    Ciao a tutti aruba mi ha fornito uno script per l'upload di immagini e vorrei modoficarne alcune parti in base alle ie esigenze. Sto facendo una specie di blog dove ogni utente può mettere la sua foto (ma solo una). Qui il mio problema. Vorrei che quando lui sceglie l'immagine dal suo hard disk e la carica quest'ultima acquisti il nome della sua sessione (se si collega l'utente pippo e carica un immagine imm.jpg, quest'ultima finisca sul server col nome pippo.jpg). Il problema che lo script è un po' complicato per me (sono un principiante!) e non riesco a trovare la parte di codice che mi permette tale azione...mi aiutate? vi posto il codice

    codice:
    <%
    Class FileUploader
    	Public  Files
    	Private mcolFormElem
    	Private imaxSize
    	Private imaxFileSize
    	Private bOverWrite
    	Public  fileExt
    	Public  error
    	Public  errorDesc
    	
    	Private Sub Class_Initialize()
    		Set Files = Server.CreateObject("Scripting.Dictionary")
    		Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
    		bOverWrite = True
    	End Sub
    	
    	Private Sub Class_Terminate()
    		If IsObject(Files) Then
    			Files.RemoveAll()
    			Set Files = Nothing
    		End If
    		If IsObject(mcolFormElem) Then
    			mcolFormElem.RemoveAll()
    			Set mcolFormElem = Nothing
    		End If
    	End Sub
    
    	Public Property Get Form(sIndex)
    		Form = ""
    		If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex))
    	End Property
    	
    	Public Property Let maxFileSize(iSize)
    	  imaxFileSize = iSize
    	End Property
    	
    	Public Property Get maxFileSize
    	  maxFileSize = imaxFileSize
    	End Property	
    
    	Public Property Let maxSize(iSize)
    	  imaxSize = iSize
    	End Property
    
    	Public Property Get maxSize
    	  maxSize = imaxSize
    	End Property
    	
    	Public Property Let OverWrite(bValue)
    	  bOverWrite = bValue
    	End Property
    
    	Public Property Get OverWrite
    	  OverWrite = bOverWrite
    	End Property		
    	
    	Public Default Sub Upload()
    		Dim biData, sInputName
    		Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
    		Dim nPosFile, nPosBound
        Dim counter
    
    		error = False
    		errorDesc = ""
    		
    		'Se la somma delle dimensioni dei file � filtrata
    		If Not IsNull(imaxSize) AND IsNumeric(imaxSize) AND imaxSize <> "" Then
    			'Se la somma delle dimensioni dei file � maggiore a quella impostata genera ERRORE
    			If Request.TotalBytes > imaxSize Then
    				Error = True
    				errorDesc = errorDesc & "La somma delle dimensioni dei file � pi� grande di " & imaxSize & " byte" & "
    "
    				Exit Sub
    			End If
    		End If
    
    		biData = Request.BinaryRead(Request.TotalBytes)
    
    		nPosBegin = 1
    		nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
    		
    		If (nPosEnd-nPosBegin) <= 0 Then Exit Sub
    		 
    		vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
    		nDataBoundPos = InstrB(1, biData, vDataBounds)
    		
    		'contatore dei file
    		counter = 0
    
    		'Cicla i dati contenenti le informazioni dei file
    		Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))
    		
    		  counter = counter + 1	
    		  
    			nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
    			nPos = InstrB(nPos, biData, CByteString("name="))
    			nPosBegin = nPos + 6
    			nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
    			sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
    			nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
    			nPosBound = InstrB(nPosEnd, biData, vDataBounds)
    			
    			If nPosFile <> 0 And  nPosFile < nPosBound Then
    				Dim oUploadFile, sFileName, sFileName1, sFileExt, dotpos
    				Set oUploadFile = New UploadedFile
    				
    				nPosBegin = nPosFile + 10
    				nPosEnd =  InstrB(nPosBegin, biData, CByteString(Chr(34)))
    				
    				sFileName = Session("username")
    				
    				'Se le estensioni sono filtrate
    				If Not IsNull(fileExt) Then
    
      				'Se il campo file del form contiene un file prosegui
      				If sFileName <> "" Then
      				
    				    'Ricaviamo nome completo, nome senza estensione, estensione
    				    sFileName1 = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))  				
        				dotpos = 0
        				dotpos = InStrRev(sFileName1, ".")
        				oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\")) 'nome completo
        				oUploadFile.FileExt = Right(sFileName1, Len(sFileName1) - dotpos)                'estensione
        				oUploadFile.FileNameShort = Left(sFileName1, dotpos-1)                           'nome senza estensione
        				oUploadFile.OverWrite = bOverWrite
        				
        				sfileExt = oUploadFile.FileExt				
    
      				  'Se l'estensione non � tra quelle ammesse genera ERRORE
      				  If Instr(fileExt, sFileExt) = 0 Then
      				  	Error = True
      				  	errorDesc = errorDesc & "File #" & counter & "(" & oUploadFile.FileName & "): tipo di file non ammesso (solo " & fileExt & ")" & "
    "
      				  Else
          				nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
          				nPosBegin = nPos + 14
          				nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
          				
          				oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
          				
          				nPosBegin = nPosEnd+4
          				nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
          				oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
          				
          				'If (oUploadFile.FileSize > 0) AND (oUploadFile.FileSize <= imaxFileSize) Then Files.Add LCase(sInputName), oUploadFile
          				
                  'Se la dimensione max per il singolo file non � filtrata allora pu� essere caricato
          				If Not IsNull(imaxFileSize) AND IsNumeric(imaxFileSize) AND imaxFileSize <> "" Then
          				
          				  'Se il file supera la dimensione max ammessa per il singolo file allora genera ERRORE
            				If oUploadFile.FileSize > imaxFileSize Then
          	 			  	Error = True
          				  	errorDesc = errorDesc & "File #" & counter & "(" & oUploadFile.FileName & "): dimensione file non ammessa (max: " & imaxFileSize & " bytes)
    "
          				  	'Exit Sub
          				  Else
          				    Files.Add counter-1, oUploadFile
          				    'Files.Add LCase(sInputName), oUploadFile
          				  End If				
          				Else
          				  Files.Add counter-1, oUploadFile
          				  'Files.Add LCase(sInputName), oUploadFile      				
          				End If
      				  End If
    
      				End If
    
    				'Se le estensioni non sono filtrate carica tutti i file
    				Else
    
      				'Se il campo file del form contiene un file prosegui
      				If sFileName <> "" Then
      				
    				    sFileName1 = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))  				
        				dotpos = 0
        				dotpos = InStrRev(sFileName1, ".")
        				
                'Se il file ha un estensione qualsiasi pu� essere caricato
        				If dotpos > 0 AND dotpos < Len(sFileName1) Then
          				oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))
          				oUploadFile.FileExt = Right(sFileName1, Len(sFileName1) - dotpos)
          				oUploadFile.FileNameShort = Left(sFileName1, dotpos-1)
          				oUploadFile.OverWrite = bOverWrite
          				
          				sfileExt = Right(sFileName1, Len(sFileName1) - InStrRev(sFileName1, "."))				
      
          				nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
          				nPosBegin = nPos + 14
          				nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))
          				
          				oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
          				
          				nPosBegin = nPosEnd+4
          				nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
          				oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
          				
        				  'Se la dimensione max per il singolo file non � filtrata allora pu� essere caricato
          				If Not IsNull(imaxFileSize) AND IsNumeric(imaxFileSize) AND imaxFileSize <> "" Then
    
        				    'Se il file supera la dimensione max ammessa per il singolo file allora genera ERRORE
            				If oUploadFile.FileSize > imaxFileSize Then
          	 			  	Error = True
          				  	errorDesc = errorDesc & "File #" & counter & "(" & oUploadFile.FileName & "): dimensione file non ammessa (max: " & imaxFileSize & " bytes)
    "
          				  	'Exit Sub
          				  Else
          				    Files.Add counter-1, oUploadFile
          				    'Files.Add LCase(sInputName), oUploadFile
          				  End If				
          				Else
          				  Files.Add counter-1, oUploadFile
          				  'Files.Add LCase(sInputName), oUploadFile      				
          				End If			
    
                'Se il file non ha estensione genera ERRORE      		
          			Else
      	 			  	Error = True
      				  	errorDesc = errorDesc & "File #" & counter & "(" & sFileName1 & "): file senza estensione
    "
          		  End If
    
      				End If
    
    				End If
    			Else
    				nPos = InstrB(nPos, biData, CByteString(Chr(13)))
    				nPosBegin = nPos + 4
    				nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
    				If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
    			End If
    
    			nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)
    		Loop
    	End Sub
    
    	'String to byte string conversion
    	Private Function CByteString(sString)
    		Dim nIndex
    		For nIndex = 1 to Len(sString)
    		   CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
    		Next
    	End Function
    
    	'Byte string to string conversion
    	Private Function CWideString(bsString)
    		Dim nIndex
    		CWideString =""
    		For nIndex = 1 to LenB(bsString)
    		   CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1))) 
    		Next
    	End Function
    End Class
    
    Class UploadedFile
    	Public ContentType
    	Public FileName
    	Public FileNameShort
    	Public FileExt
    	Public FileData
    	Public OverWrite
    	
    	Public Property Get FileSize()
    		FileSize = LenB(FileData)
    	End Property
    
    	Public Sub SaveToDisk(sPath)
    		Dim oFS, oFile
    		Dim nIndex
    	
    		If sPath = "" Or FileName = "" Then Exit Sub
    		If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\"
    	
    		Set oFS = Server.CreateObject("Scripting.FileSystemObject")
    		If Not oFS.FolderExists(sPath) Then Exit Sub
    		
    		back = ""
    
    		If Not OverWrite Then
    		  i = 0
    		
    		  Do While oFS.FileExists(sPath & FileNameShort & back & "." & FileExt)
    		    i = i + 1
    		    back = CStr(i)
    		  Loop
    		End If
    		
    		Set oFile = oFS.CreateTextFile(sPath & FileNameShort & back & "." & FileExt, True)
    		
    		For nIndex = 1 to LenB(FileData)
    	    oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
    		Next
    		oFile.Close
    		
    		Set oFS = Nothing
    	End Sub
    	
    	Public Sub SaveToDatabase(ByRef oField)
    		If LenB(FileData) = 0 Then Exit Sub
    		
    		If IsObject(oField) Then
    			oField.AppendChunk FileData
    		End If
    	End Sub
    
    End Class
    %>
    Vi ringrazio anticipatamente!!!

    Ciaoooo

  2. #2
    se usi lo script di Baol (i link li trovi su google o cercando sul forum) poi ti basta un semplice:

    codice:
    'istanzio upload
    	Set oUp= new cUpload
    	With oUp
    	.EnabledAspUpload	= False
    	.EnabledLog 		 = False
    	.OverWrite	=true
    	.AutoRename	=false
    .SetPath "/public/tuacartella"	
    .Load()
    	end with
    
    if not oUp.eof then  'c'è qualcosa da caricare
    
    fileName=NOMECHETEPARE & oUp.files("ext")
    
    oUp.saveAs(fileName)
    
    end if

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.