Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    752

    Capire quando il download è finito

    Ciao
    Sto cercando di creare uno script che controllando il peso capisce quando un file è definitivamente arrivato nella cartella.
    Ho fatto delle prove con f.Size ma senza risultati apprezzabili.

    Help me
    Comunque Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    752
    Non pensavo che fosse un problema cosi difficile.
    In realtà pensavo di realizzare un If che ciclicamente controllasse il peso file.
    Mi spiego:
    Se leggo il file in download il peso non sarà mai lo stesso quindi se il mio ciclo if vede che il peso non cambia il file in teoria è completato.

    Mi date un aiuto a fare questo??

    Grazie
    Comunque Grazie

  3. #3
    non è molto chiaro... qualche ipotesi

    1. un utente lo sta scaricando dal tuo sito... con un download forzato a blocchi te ne accorgi quando invii l'ultimo blocco

    2. se lo stai ricevendo (non stai facendo upload) quello che vuoi fare lo puoi fare solo con un ciclo che manderebbe la cpu alle stelle fino a quando non ti arriva tutto

    se non ho capito >

  4. #4
    quotando il punto 1 di cicciopie, aggiungo al punto 2 che con asp non è possibile sapere lo stato di avanzamento dell'upload di un file sul server ( al contrario di altri linguaggi come php ).

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

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    752
    Ciao
    L'ipotesi corretta è la seconda.
    Nella mia piccolezza avevo preventivato che con un loop avrei sovraccaricato la CPU ma pensavo di fare una lettura del peso file ogni 15 secondi circa.
    Se il peso non cambia ecco che il file è completo.
    Tra l'altro i file sono molto pesanti quindi verrebbero messi sul server in minuti, quindi avrei tutto il tempo di fermare la lettura e riprenderla con i dovuti tempi per non sovraccaricare il sistema.

    Tutto qui
    Comunque Grazie

  6. #6
    Originariamente inviato da fosforo
    Ciao
    L'ipotesi corretta è la seconda.
    Nella mia piccolezza avevo preventivato che con un loop avrei sovraccaricato la CPU ma pensavo di fare una lettura del peso file ogni 15 secondi circa.
    Se il peso non cambia ecco che il file è completo.
    Tra l'altro i file sono molto pesanti quindi verrebbero messi sul server in minuti, quindi avrei tutto il tempo di fermare la lettura e riprenderla con i dovuti tempi per non sovraccaricare il sistema.

    Tutto qui
    allora..

    quando tu fai il submit del form che contiene il file da uplodare, verso la tua pagina do_upload.asp, IIS prima si carica il file sul server, e poi si manda in esecuzione la pagina do_upload.asp. Quindi, qualsiasi controllo tu metta nella pagina do_upload.asp, è assolutamente inutile perchè verrà effettuato dopo l'upload del file.

    Altri linguaggi invece sono piu trasparenti e ti permettono di sapere quanto file è stato uplodato e quindi poter fare la progress o cose simili durante l'upload.

    L'unica sarebbe scoprire dove IIS crea il file temporaneo e salva i byte rucevuti dall'upload, ma cmq non è una cosa percorribile o percorribile facilmente


    NOTA: dico questo per esperienza personale e ricerche sparse so google. Non pretendo di avere ragione al 100% sul discorso
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    752
    Devo chiedere scusa perchè probabilmente mi sono spiegato male.
    Rifo da capo.
    Ho una cartella dove via FTP vengono scaricati dei file.
    Chiaramente non conosco la dimensione dei file che verrnno scaricati.
    Devo però, una volta che i file sono scaricati completamente, spostarli da quella cartella a altre apposite cartelle.
    Perchè ho pensato in ASP?
    Perchè i file che vengono scaricati nella mia cartella sono poi gestiti attraveso un sito.
    Il problema è che fino a quando i file sono in download non possono essere toccati.

    Sto provando a realizzare una Funcion utilizzando l'oggetto "f.Size" del tipo:

    leggo il peso del mio file e lo memorizzo nella variabile X
    X = PesoMioFile

    creo una pausa di 10 Sec

    Rileggo il peso file e lo inserisco nella variabile Y
    Se X = Y allora il file è completo

    Se X < Y allora il file è ancora in download.

    è nella costruzione di questa Funcion che trovo difficoltà.
    Comunque Grazie

  8. #8
    Originariamente inviato da fosforo
    Devo chiedere scusa perchè probabilmente mi sono spiegato male.
    Rifo da capo.
    Ho una cartella dove via FTP vengono scaricati dei file.
    Chiaramente non conosco la dimensione dei file che verrnno scaricati.
    Devo però, una volta che i file sono scaricati completamente, spostarli da quella cartella a altre apposite cartelle.
    Perchè ho pensato in ASP?
    Perchè i file che vengono scaricati nella mia cartella sono poi gestiti attraveso un sito.
    Il problema è che fino a quando i file sono in download non possono essere toccati.

    Sto provando a realizzare una Funcion utilizzando l'oggetto "f.Size" del tipo:

    leggo il peso del mio file e lo memorizzo nella variabile X
    X = PesoMioFile

    creo una pausa di 10 Sec

    Rileggo il peso file e lo inserisco nella variabile Y
    Se X = Y allora il file è completo

    Se X < Y allora il file è ancora in download.

    è nella costruzione di questa Funcion che trovo difficoltà.
    ecco ora è più chiaro il problema...

    con asp non c'è modo di inserire pause... o meglio... potresti usare xmlhtpp per chiamare una pagina asp.net che dispone del comando sleep... quindi basterebbe un semplice ciclo che esca quando è soddisfatta la condizione che hai indicato

    oppure usare una pagina con tag meta refresh a 10 secondi che fa i controlli del caso... passa il peso del file per querystring o var session

  9. #9
    No asp non fa per te.. o meglio dovresti mettere uno schedule che ogni 10 secondi richiami la pagina asp che fa un controllo sui file presenti nella cartella e se le condizioni sono verificate sposta il file.. 2 problemi:

    1) intanto non è detto che le dimensioni del file siano quelle parziali durante l'upload ma può essere che il sistema crei un file da XXmb e poi lo "riempie" con pacchetti da YKB (molti programmi fanno così, windows non ricordo)

    2) come salvarti il peso dei file letto 10 secondi prima (session? db? application?)

    cmq niente pause in asp, quindi schedula il tutto.. altrimenti ti fai un mini watchdog in .net che in continuazione ti controlla la cartella citata

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

    Old account: 2126 messages
    Oldest account: 3559 messages

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    752
    Io lo posto sperando di non far ridere nessuno.
    Visto che mi è stato confermato che in ASP non si possono creare pause io ho scritto questo che oltre a funzionare non impegna la CPU:

    Do
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(FolderFrom)
    set f = fso.GetFile (("E:\Upload\") & myfile)
    PesoUno = f.size
    Set Executor = Server.CreateObject("ASPExec.Execute")
    Executor.Application = ("c:\inetpub\wwwroot\Pausa20Sec.bat")
    intResult = Executor.ExecuteDosApp
    PesoDue = f.size
    Response.Write(PesoUno & "----" & PesoDue)
    Loop Until PesoUno = PesoDue

    Nel file Pausa20Sec.bat c'è questo:
    ping -n 20 localhost > nul
    exit

    Cosa ne pensate??
    E' una porcheria come soluzione al mio problema????
    Comunque Grazie

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.