Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Numerare file a seguito di upload

    Ciao a tutti.

    Ho scritto questa funzione che dovrebbe rinominare in automatico un file inviato in upload al server, quando appunto sul server è presente un file con lo stesso nome (quindi il file è già esistente); la funzione non dà errori ma il file viene sempre sovrascritto, dove sbaglio?
    codice:
     Dim gFS
    Function GetUniqueFileName(FileName)
      if IsEmpty(gFS) then Set gFS = CreateObject("Scripting.FileSystemObject")
    
      Counter = 1
      NewFileName = FileName
      
      if gFS.FileExists(NewFileName) then
    		Do 
    			Counter = Counter + 1
    			NewFileName = Counter & "_" & FileName
    		Loop while gFS.FileExists(NewFileName)
      end if
      GetUniqueFileName = NewFileName
    End Function
    
    
    function SaveFiles
        Dim Upload, fileName, fileSize, ks, i, fileKey, SaveFiless
    
        Set Upload = New FreeASPUpload
        Upload.Save(uploadsDirVar)
    
    	If Err.Number<>0 then Exit function
    
        SaveFiles = ""
        ks = Upload.UploadedFiles.keys
        if (UBound(ks) <> -1) then
            SaveFiles = ""
            for each fileKey in Upload.UploadedFiles.keys
                            SaveFiles = GetUniqueFileName(SaveFiles & Upload.UploadedFiles(fileKey).FileName) & " (" & Upload.UploadedFiles(fileKey).Length & " Bytes)
     "
                response.write SaveFiles &"
    "
    else
            SaveFiles = "KO."
        
    
    end if
    end function
    Grazie

  2. #2
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Idee?

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Se c'è da cambiare metodo o funzione sono disponibile a farlo...

  4. #4
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Modifico così:
    codice:
    Dim gFS
    Function GetUniqueFileName(SaveFiles)
      if IsEmpty(gFS) then Set gFS = CreateObject("Scripting.FileSystemObject")
    
      Counter = 1
      NewFileName = SaveFiles
      
      response.write NewFileName &" qui
    "
      
      if gFS.FileExists("d:\inetpub\...\"& NewFileName &"") then
    		Do 
    			Counter = Counter + 1
    			NewFileName = Counter & "-" & SaveFiles
                response.write NewFileName &" qua
    "
    		Loop while gFS.FileExists("d:\inetpub\...\"& NewFileName &"")
      end if
      GetUniqueFileName = NewFileName
      End Function
    
    
    function SaveFiles
        Dim Upload, fileName, fileSize, ks, i, fileKey
    
        Set Upload = New FreeASPUpload
        Upload.Save(uploadsDirVar)
        
    	If Err.Number<>0 then Exit function
    	
        SaveFiles = ""
        ks = Upload.UploadedFiles.keys
        if (UBound(ks) <> -1) then
            SaveFiles = ""
            for each fileKey in Upload.UploadedFiles.keys
    
    
                SaveFiles = SaveFiles & GetUniqueFileName(Upload.UploadedFiles(fileKey).FileName)
    
    response.write SaveFiles &"
    " 
    
    else
            SaveFiles = "KO"
        
    
    end if
    end function
    I vari response.write restituiscono:
    test.csv qui
    2-test.csv qua
    2-test.csv
    Ma sul server si carica sempre test.csv e non 2-test.csv

    Perchè???

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    codice:
    test.csv - Nome File originale 
    2-test.csv - Nome file nuovo 
    
    ------
    
    2-test.csv - Nome file nuovo; 
    test.csv (20408 Bytes) - Sul server

  6. #6
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Scusa, prima salva il file

    Upload.Save(uploadsDirVar)

    e poi lo rinomini ????

    Credo che tu debba assegnare il nuovo nome alla variabile

    Upload.UploadedFiles(fileKey).FileName

    prima di salvare.

    ...ma non conosco l'upload che stai usando....per cui è solo un'ipotesi

  7. #7
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Grazie Baol per il suggerimento, ho risolto in questo modo senza più usare la funzione:
    codice:
    Set gFS = CreateObject("Scripting.FileSystemObject")
            if gFS.FileExists("d:\inetpub\...\" & SaveFiles & "") then
            Do
    			Counter = Counter + 1
    			NewFileName = SaveFiles
    			NewFileName = Counter & "-" & NewFileName  
               Loop while gFS.FileExists("d:\inetpub\...\"& NewFileName &"")
                gFS.MoveFile "d:\inetpub\...\"&SaveFiles&"", "d:\inetpub\...\"&NewFileName&""
      set gFS = nothing
      end if
    E sembra funzionare... cioè rinomino in sequena numerata tutti i files che hanno lo stesso nome...

  8. #8

    Non capisco come usare il codice

    Ho letto e provato ad usare il codice, ma non ci riesco, per favore potrebbe aiutarmi a usarlo?
    grazie

  9. #9
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    ma qual'è il problema?

  10. #10

    Grazie

    Mi scusi tanto x averla disturbata, il codice che all'inizio ha scritto sembra uguale a quello di freeupload asp, tranne per la parte che non c'è del controllo dell'esistenza del file con relativo incremento +1.
    Lei dice di avere risolto togliendo la funzione, ma ho provato a copiare e metterla fra le righe
    Set Upload = New FreeASPUpload
    Upload.Save(uploadsDirVar)
    prima, dopo, ma non riesco a farlo funzionare.
    Mi sarebbe veramente d'aiuto se mi puo aiutare in questo,
    come ha messo il codice dentro il blocco di upload??

    grazie e scusi

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.