2008-09-08 10 views

risposta

0

Un buon esempio di ciò senza usare Ajax è dato at CodeProject by Nilesh Thakkar.

+1

Si tratta di una barra di avanzamento manichino. Non mostra il% di percentuale caricato. Potrebbe anche utilizzare il messaggio "caricamento in corso ..." come overlay. – krishna

14

Se sei interessato a come funziona tutto questo in genere, questo è il seguente:

Tutte le soluzioni collegano il modulo tramite javascript e cambiano il modulo su un IFRAME invisibile appena creato. Quindi sono liberi di utilizzare AJAX per richiedere alcuni stati sul file dal server.

Il trucco IFRAME è necessario perché tutti gli script in esecuzione nella finestra che sta eseguendo il caricamento verranno sospesi fino al completamento della richiesta e al momento del caricamento completo del file.

+0

IFRAME è davvero necessario? Qualcuno può confermarlo? Sono confuso. –

+6

Sì, è necessario IFRAME. Non è possibile inviare caricamenti di file tramite AJAX (ovvero tramite l'oggetto XMLHTTPRequest di Javascript) e solo una normale sottomissione di modulo impedirebbe all'utente l'esecuzione di Javascript aggiuntivo per eseguire il polling del server per l'avanzamento del caricamento. – georgebrock

2

Ho provato varie tecniche e ho avuto più successo con SWFUpload.

È possibile creare e interagire con un oggetto SWFUpload utilizzando Javascript, ma utilizza un file Flash (nascosto) per la selezione, il caricamento e il caricamento del monitoraggio dell'avanzamento dei file. Puoi specificare una vasta gamma di gestori di eventi Javascript (uploadStarted, uploadProgress, uploadError ecc.) Che Flash chiamerà durante il caricamento, rendendolo molto flessibile. Implementa anche una coda file, quindi funziona bene per file singoli o multipli.

vicini:

Problemi correlati