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

Discussione: upload con persits

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630

    upload con persits

    Carissimi,
    con questo script ho unito alcune funzioni utilizzando gli oggetti persits, però non funziona al momento di rinominare il file durante l'upload.
    In pratica carica il file ma con il nome originale, in + come posso implementare un limite di estensione, cioè che possano caricare solo file .pdf?
    codice:
    <%
    Set Upload = Server.CreateObject("Persits.Upload")
    
    Set File = Upload.Files("FILE1")
    
    percorso = Server.MapPath("/public/")
    
    ' Limite di dimensione
    Upload.SetMaxSize 100000000, True 
    
    On Error Resume Next 
    
    ' This is needed to enable the progress indicator
    Upload.ProgressID = Request.QueryString("PID")
    
    Count = Upload.Save (percorso)
    
    end if
    
    If Not File Is Nothing Then
    
    filename=File.FileName
    
    nuovo_filename="nuovo"
    
    Dim fsoMyFile
    Set fsoMyFile = Server.CreateObject("Scripting.FileSystemObject")
    fsoMyFile.MoveFile (Server.MapPath("/public/"&nuovo_filename&""))
    Set fsoMyFile = nothing
    
    Response.Write Count & " file caricato "
    
    %>
    Grazie per il Vs. aiuto.
    G.

  2. #2
    Per il problema di rinominare il file, ti mando al mio blog dove tratto l'upload con persits:

    rinominare file upload persits

    Per l'altro problema, cioè il controllo dell'estensione una soluzione è:

    carichi il file, rilevi l'estensione e se non è permessa elimini il file. L'upload persits è molto veloce e comodo (con due righe fai l'upload e con un paio di righe in + lo fai anche multiplo...e con la progress bar...e come se non bastasse puoi caricare file di qualunque dimensione!), ma prima di modificare il file devi caricarlo sul server...

    Io ho risolto ricavando l'estensione e poi eliminandola se non corrispondeva alle mie esigenze.
    Se ti serve il dettaglio di come fare...dimmelo.

    Ciao
    Alessio

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Grazie per il tuo aiuto e disponibilità..
    Potresti dettagliarmelo sullo script che ho postato?
    Grazie
    G.

  4. #4
    Ma scusa...già vedo che lo script che hai provato ad usare è uno script fatto da me...ma mi dici cosa non riesci a fare?

    A rinominare il file??? dimmi se ti da errore... Hai impostato il nuovo nome del file? Hai controllato i percorsi?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Ciao,
    ti sbagli perchè questo script lo unito io dai vari oggetti persits infatti questo postato non funziona proprio l'ho modificato così:
    codice:
    <%
    Set Upload = Server.CreateObject("Persits.Upload")
    
    percorso = Server.MapPath("/public/")
    
    ' Limite di dimensione
    Upload.SetMaxSize 100000000, True 
    
    On Error Resume Next 
    
    ' This is needed to enable the progress indicator
    Upload.ProgressID = Request.QueryString("PID")
    
    Count = Upload.Save (percorso)
    
    Set File = Upload.Files("FILE1")
    
    If Not File Is Nothing Then
    
    filename=File.FileName
    
    nuovo_filename="nuovo"
    
    Dim fsoMyFile
    Set fsoMyFile = Server.CreateObject("Scripting.FileSystemObject")
    fsoMyFile.MoveFile (Server.MapPath("/public/"&nuovo_filename&""))
    Set fsoMyFile = nothing
    
    end if
    
    Response.Write Count & " file caricato "
    
    %>
    Però il file non lo rinomina e in + volevo che si implementasse la possibilità di limitare al solo upoad di file .doc.
    Un'altra cosa, se non imposto la dimensione massima dell'upload c'è un limite sulla dimensione del file da caricare?
    Grazie 1000
    G.

  6. #6
    Sì..hai ragione...non era il mio script...il mio funziona!

    Cmq...a parte gli scherzi...sai dov'è il problema?

    questa riga:

    fsoMyFile.MoveFile (Server.MapPath("/public/"&nuovo_filename&""))


    gli manca dove e come vuoi spostare e rinominare il file...il pezzo che hai tu serve per dirgli quale file rinominare...ma manca il pezzo nel quale gli dici come rinominarlo:

    fsoMyFile.MoveFile (Server.MapPath("/public/"&filename&"")), (Server.MapPath("/public/"&nuovo_filename&"-"&filename&""))

    e comunque avrebbe avuto un problema lo stesso: tu hai messo come valore della variabile "nuovo_filename" il valore "nuovo"...se tu rinominassi un file semplicemente come "nuovo"...ti darebbe errore perché mancherebbe l'estensione...quindi eventualmente potresti sostituire, visto che nel tuo caso l'estensione deve essere solo ".doc" qualcosa tipo:

    fsoMyFile.MoveFile (Server.MapPath("/public/"&filename&"")), (Server.MapPath("/public/"&nuovo_filename&".doc"))

    Limiti di dimensione, con l'upload in questione, non ce ne sono...io ho caricato file anche superiori ai 100 MB senza problemi e anche molto velocemente...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Ciao
    hai ragione, comunque ho risolto anche il problema dell'estensione del file.
    Però vorrei che la limitazione del file da caricare vorrei impostarla nello script come posso fare? Me lo potresti implementare?
    Ecco il codice con le modifiche:
    codice:
    <%
    Set Upload = Server.CreateObject("Persits.Upload")
    
    percorso = Server.MapPath("/public/")
    
    ' This is needed to enable the progress indicator
    Upload.ProgressID = Request.QueryString("PID")
    
    Count = Upload.Save (percorso)
    
    Set File = Upload.Files("file1")
    
    If Not File Is Nothing Then
    filename=File.FileName
    
    nuovo_filename="testodiprova"&file.ext&""
    
    Dim fsoMyFile
    Set fsoMyFile = Server.CreateObject("Scripting.FileSystemObject")
    fsoMyFile.MoveFile (Server.MapPath("/public/"&filename&"")), (Server.MapPath("/public/"&nuovo_filename&""))
    Set fsoMyFile = nothing
    
    end if
    
    Response.Write Count & " file caricato "
    
    %>
    Grazie 1000
    G.

  8. #8
    In sostanza metterai ad esempio:


    Codice PHP:
    <%
    Set Upload Server.CreateObject("Persits.Upload")

    percorso Server.MapPath("/public/")

    ' This is needed to enable the progress indicator
    Upload.ProgressID = Request.QueryString("PID")

    Count = Upload.Save (percorso)

    Set File = Upload.Files("file1")

    If Not File Is Nothing Then
    filename=File.FileName
    estensione=file.ext

    '
    imposta l'estensione ammessa...considera che è case sensitive quindi vengono considerate maiuscole e minuscole...al massimo crea un array che contenga anche l'estensione scritta in maiuscoloe poi fai un controllo sulle estensioni contenute nell'array

    estensione_ammessa=".doc"

    if estensione=""&estensione_ammessa&"" then
    nuovo_filename="testodiprova"&file.ext&""

    Dim fsoMyFile
    Set fsoMyFile = Server.CreateObject("Scripting.FileSystemObject")
    fsoMyFile.MoveFile (Server.MapPath("/public/"&filename&"")), (Server.MapPath("/public/"&nuovo_filename&""))
    Set fsoMyFile = nothing

    end if

    Response.Write Count & " file caricato "

    else

    file.delete

    response.write "Il file ha un'
    estensione non ammessa!"
    end if

    %> 
    prova...e facci sapere...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Grazie, ma lo script così come lo hai modificato fà:
    1) lascia il nome originale del file
    2) lascia passa i file di qualsiasi estensione...
    Ciao
    G.

  10. #10
    Codice PHP:
    <% 
    Set Upload Server.CreateObject("Persits.Upload"

    percorso Server.MapPath("/public/"

    ' This is needed to enable the progress indicator 
    Upload.ProgressID = Request.QueryString("PID") 

    Count = Upload.Save (percorso) 

    Set File = Upload.Files("file1") 

    If Not File Is Nothing Then 
    filename=File.FileName 
    estensione=file.ext 

    estensione_ammessa=".doc" 

    if estensione<>estensione_ammessa then 
    file.delete 

        response.write "Il file ha un'
    estensione non ammessa!

    else
    nuovo_filename="
    testodiprova"&file.ext&"" 

    Dim fsoMyFile 
    Set fsoMyFile = Server.CreateObject("
    Scripting.FileSystemObject") 
    fsoMyFile.MoveFile (Server.MapPath("
    /public/"&filename&"")), (Server.MapPath("/public/"&nuovo_filename&"")) 
    Set fsoMyFile = nothing 

        Response.Write Count & " 
    file caricato 

    end if 


    end if

    %> 

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.