Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    problema duro per upload file di grandi dimensioni

    Salve alla comunità

    mi trovo a risolvere questo problema:
    Debbo realizzare un'area web, ad accesso riservato, che consenta di scambiare file. In altre parole l'area gestisce un insieme di utenti autorizzati che, previo inserimento di username e password, hanno accesso ad uno spazio condiviso nel quale possono caricare/scaricare file.

    Nessun problema per il download, ovviamente.

    I problemi, invece, si presentano nel caso di upload.
    Se un utente tenta di eseguire un upload di un file di dimensioni superiori a 4096 Byte ottiene una pagina di errore (Timeout).

    Ho visto che è possibile impostare la configurazione del max. size per i file in upload dentro il web.config; se ad esempio volessi permettere upload di dimensioni fino a 30mb dovrei configurare il web.config così:

    <httpRuntime maxRequestLength="30960" />

    Questa soluzione poco mi piace perchè:
    1. Se l'utente decide di inviare file di dimensioni maggiori siamo daccapo.
    2. L'area di scambio deve essere ricavata entro il più generale spazio di un sito internet. Se imposto in quel modo il web config consento a tutti utenti, ove questo sia permesso, di poter effettuare file di dimensioni spropositate... ciò, naturalmente, non va bene per nulla.
    3. L'utente che invia un file di dimensioni entro il max. limite fissato, ad esempio 30000 Byte, si trova di fronte una pagina bianca che durerà per tutto il tempo in cui client e server si trasmettono dati. Oltre ad essere molto brutto, questo fatto mi espone al rischio che lo stesso utente si spazientisca e "abortisca" l'operazione prima della sua corretta conclusione.

    Chiedo dunque, alla comunità, nell'ordine le seguenti cose:
    1. Esiste un modo alternativo per permettere l'invio di file sempre, di qualunque dimensione essi siano?
    2. Questo modo può essere limitato alla sola area d'interesse, per non dar modo agli altri utenti del sito di "uploadare" sistemi operativi e divx?
    3. Esiste il modo per ricavare una barra di scorrimento che, alla stregua del download, mi dica a che punto è l'operazione di upload (es. 20%, 30%, ecc)? In particolare è possibile contare i pacchetti in cui viene suddiviso il file al momento dell'upload e monitorare la corretta ricezione di ciascuno di questi?

    Grazie per l'attenzione.

    Francesco.
    Lupo
    ----

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    puoi aumentare il tempo di timeout nel web.confg

  3. #3
    come si aumenta il timeout nel web-config?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    no scusa il webconfig no (mi confondevo con il timeout della sesion )

    cmq in asp mi ricordo 1 cosa del genere .. forse va anke con .net
    Codice PHP:
    Dim ttimeout As Integer "9999999999999999999999999999"
    Server.ScriptTimeout ttimeout 

  5. #5
    si...
    in un modo o nell'altro dovrebbe funzionare...
    resta il fatto che se un utente mi fa un upload di un file di grandi dimensioni resta parcheggiato davanti al brouser per, magari, diversi minuti, senza sapere quello che sta succedendo....

    Ci vorrebbe il modo di tirar fuori una progress-bar...
    in giro per il web ho trovato qualche componente ... ma sono tutti a pagamento...
    qualcuno conosce qualche componente free che faccia al caso mio?

    p.s.
    Grazie a tutti dell'aiuto.
    Lupo
    ----

  6. #6
    senti lupo pure io devo fare upload di grandi dimensioni, ma con una ADSL 640 vado in timeout con file da 10MB

    mi dici come fai?

  7. #7
    Originariamente inviato da Daniele80
    senti lupo pure io devo fare upload di grandi dimensioni, ma con una ADSL 640 vado in timeout con file da 10MB

    mi dici come fai?
    Non ti dico come faccio per il motivo che non l'ho ancora fatto

    Ti dico, però, come, per il momento sarei orientato a fare (ammesso che funzioni).

    Vorrei impostare nel web.config il parametro [b]httpRuntime[b]:

    <httpRuntime useFullyQualifiedRedirectUrl="true|false"
    maxRequestLength="size in kbytes"
    executionTimeout="seconds"
    minFreeThreads="number of threads"
    minFreeLocalRequestFreeThreads="number of threads"
    appRequestQueueLimit="number of requests"
    versionHeader="version string"/>

    in particolare vorrei configurare i parametri relativi al timeout ed al maxRequestLength...

    nel tuo caso (credo) potresti impostare nell'httpRuntime l'executionTimeout con il numero di secondi che ti servono (quanti? boh... vai per tentativi ) e, nello stesso tempo, impostare il maxRequestLength con il max. carico che le pagine debbono sopportare. Per impostazione predefinita il valore del maxRequestLength è di 4096 KB (4mb). Nel tuo caso dovresti portarlo ad un valore almeno maggiore di 10320 KB (10mb).

    Però...
    anche se questa soluzione funzionasse rimangono delle incognite:
    1. Il timeout: Tu che hai l'ADSL riesci ad eseguire l'upload del megafile nel tempo concesso... ma se uno ha una connessione meno potente che fa? La soluzione potrebbe essere quella di impostare valori di timeout spropositati (es: 99999999...). COme soluzione, però, non mi sembra un gran che.
    2. L'utente. Come reagisce l'utente quando, uno volta schiacciato il fatidico tasto di invio, non vede succedere niente per diversi minuti? COn ogni probabilità comincia a schiacciare il tasto invio in continuazione; poi si stufa e chiude l'applicazione.

    Per quanto riguarda il punto uno non so, veramente, come risolverlo.
    Per il punto due, invece, penso sarebbe l'ideale mostrare all'utente una progress-bar che indichi l'effettivo progredire dell'operazione (per quanto lento), in modo da incoraggiarlo a non abbandonare la pagina prima del suo compimento.

    A questo proposito, spulciando su altri forum (ehm ), ho trovato questo articolo:

    Asynchronous Wait State Pattern in ASP.NET

    Potrebbe essere utile.

    In ogni caso, fino a che non si trova la soluzione al punto uno, l'applicazione resterà comunque abbrocciata ed imperfetta.

    Invito la comunità a raccogliere la sfida e a mettere insieme le esperienze di tutti per trovare una buona soluzione. Una volta trovata si potrebbe mettere il codice a disposizione degli utenti del forum.

    Ciauz!
    Lupo
    ----

  8. #8
    Originariamente inviato da Lupo
    Non ti dico come faccio per il motivo che non l'ho ancora fatto

    Ti dico, però, come, per il momento sarei orientato a fare (ammesso che funzioni).

    Vorrei impostare nel web.config il parametro httpRuntime:

    <httpRuntime useFullyQualifiedRedirectUrl="true|false"
    maxRequestLength="size in kbytes"
    executionTimeout="seconds"
    minFreeThreads="number of threads"
    minFreeLocalRequestFreeThreads="number of threads"
    appRequestQueueLimit="number of requests"
    versionHeader="version string"/>

    in particolare vorrei configurare i parametri relativi al timeout ed al maxRequestLength...

    nel tuo caso (credo) potresti impostare nell'httpRuntime l'executionTimeout con il numero di secondi che ti servono (quanti? boh... vai per tentativi ) e, nello stesso tempo, impostare il maxRequestLength con il max. carico che le pagine debbono sopportare. Per impostazione predefinita il valore del maxRequestLength è di 4096 KB (4mb). Nel tuo caso dovresti portarlo ad un valore almeno maggiore di 10320 KB (10mb).

    Però...
    anche se questa soluzione funzionasse rimangono delle incognite:
    1. Il timeout: Tu che hai l'ADSL riesci ad eseguire l'upload del megafile nel tempo concesso... ma se uno ha una connessione meno potente che fa? La soluzione potrebbe essere quella di impostare valori di timeout spropositati (es: 99999999...). COme soluzione, però, non mi sembra un gran che.
    2. L'utente. Come reagisce l'utente quando, uno volta schiacciato il fatidico tasto di invio, non vede succedere niente per diversi minuti? COn ogni probabilità comincia a schiacciare il tasto invio in continuazione; poi si stufa e chiude l'applicazione.

    Per quanto riguarda il punto uno non so, veramente, come risolverlo.
    Per il punto due, invece, penso sarebbe l'ideale mostrare all'utente una progress-bar che indichi l'effettivo progredire dell'operazione (per quanto lento), in modo da incoraggiarlo a non abbandonare la pagina prima del suo compimento.

    A questo proposito, spulciando su altri forum (ehm ), ho trovato questo articolo:

    Asynchronous Wait State Pattern in ASP.NET

    Potrebbe essere utile.

    In ogni caso, fino a che non si trova la soluzione al punto uno, l'applicazione resterà comunque abbrocciata ed imperfetta.

    Invito la comunità a raccogliere la sfida e a mettere insieme le esperienze di tutti per trovare una buona soluzione. Una volta trovata si potrebbe mettere il codice a disposizione degli utenti del forum.

    Ciauz!
    Lupo
    ----

  9. #9
    ho fatto casino... invece di editare il msg per modifiche l'ho quotato... pardon! :gren:
    Lupo
    ----

  10. #10
    io ho messo come timeout(web.config) mezzora perciò va + che bene.
    ho modificato anche il timeout di IE attraverso il registro

    però arrivo al massimo a 9.6MB con una ADSL.


    io sto aspettando JC_ che è riuscito a fare sui server che ha upload di file di circa 119MB.

    Secondo me dipende pure dalla configurazione del server...aspettiamo lui e vediamo che dice.

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.