2009-04-02 10 views
21

Vorrei caricare file proprio come fa Google. Vorrei usare jQuery e PHP per farlo è comunque possibile ottenere la barra di avanzamento, ecc.?Caricamento file di Gmail con jQuery

Qui ho aggiunto un video di come Google lo fa. http://dl.getdropbox.com/u/5910/Jing/2009-04-02_1948.swf

No flash, no Perl o CGI per favore ..

Credo di poter vivere senza il progressbar ora sto in realtà alla ricerca di informazioni sui plugin jQuery o solo ciò che le cose che avrei avuto bisogno di guardare

+13

Proprio per questo motivo, Google utilizza effettivamente Flash in GMail per farlo. Se fai clic con il pulsante destro del mouse sul link "Allega file", noterai che è un SWF trasparente. Inoltre, ci sono modi per caricare i file in modo asincrono utilizzando iFrame se non si desidera utilizzare Flash. Ajax non supporta i dati binari. – KyleFarris

+1

ok se gmail usa il flash, quindi come fanno ora a supportare il drag & drop del file html5? –

risposta

20

È strano che la gente dica che Gmail non usa il flash, quando si vede chiaramente il file SWF nell'interfaccia di Gmail. Prova a fare clic destro su "Allega un file". È ciò che consente più caricamenti contemporaneamente, tra le altre cose.

+0

+1 Hai ragione, grazie! –

+7

questo è datato 2010, è ancora lo stesso oggi? – Reigel

+1

Usano ancora il flash per caricare file su Google Drive –

7

Il modo più semplice sarebbe utilizzare SWFUpload, è un piccolo pulsante scritto in Flash, con tutti i ganci per guidarlo in JS. Molto facile da usare e funziona bene con PHP

ma, se vuoi davvero che sia puro JS, avrai bisogno di aiuto dal server. in particolare, dovrai avviare il caricamento e interrogare periodicamente il server su come procede. sfortunatamente, la gestione del caricamento PHP non riceve alcuna notifica fino al termine del download. dovresti sostituirlo con qualcos'altro. ci sono alcuni puri uploader JS che includono un esempio di codice server Perl solo per questo motivo.

IOW: JS e PHP non lo tagliano (completamente). aggiungere flash al client o un gestore di caricamento migliore sul server.

+0

Sì. Se puoi andare con Flash. Questo ti farà risparmiare giorni di lavoro. –

+2

SWFUpload è eccellente, l'unico problema è che non c'è modo di degradarlo con garbo quando il flash non è disponibile senza scrivere la gestione di js. Quello che chiamano degradazione aggraziata è solo la visualizzazione della finestra di avviso e nascondere il pulsante di caricamento ... – jhexp

2

PHP non supporta la segnalazione dell'avanzamento del caricamento direttamente. Quindi non c'è modo di leggere lo stato del caricamento. Tuttavia, c'è un patch che potrebbe funzionare. Non ho provato però.

+0

esempio non sembra nemmeno funzionare :( – Thomaschaaf

+1

PHP non * facilmente * supporta il caricamento in corso. È possibile, ma seriamente non ne vale la pena –

3

Uploadify è un altro pulsante di caricamento swf (mi dispiace) che utilizza jquery. La stessa idea di quello che ha menzionato Javier.

+1

È divertente come le persone stiano iniziando a dire scusa quando si parla di flash: ho vissuto (a malapena) nei giorni in cui la splash page flash era la rabbia fino a quando qualcuno non si è imbattuto nella statistica di quante persone hanno cliccato su "salta intro" –

1

GMail utilizza Flash per caricare il file in background. SWFUpload è un progetto open source che non ha nulla di simile.

1

... gmail utilizza un iFrame con visualizzazione dello stile: nascosto; quindi quando carichi sul modulo, invia l'iFrame all'URL di caricamento. Non è coinvolto affatto il flash. L'unica cosa che Google fa con il flash su Gmail è solo fare rumori per le chat. E devi permetterlo nelle impostazioni. Non usano il flash troppo spesso solo perché è piuttosto cattivo per quanto riguarda l'uso della memoria e della CPU. Javascript può fare qualsiasi cosa che Flash può fare (albiet con molto più codice in alcuni casi), ma Javascript, nel 99% dei casi è molto più veloce e con una migliore memoria.

+2

Stai usando Linux? Non servono l'uploader Flash ai client Linux a causa di bug nel player Linux Flash. SWFUpload, ad esempio, ha un problema noto in cui congela i browser su Linux –

0

SWFUpload è gud e compatibile con tutti i tipi di applicazioni web

1

Forse potresti usare PlUpload. Ha supporto per molti tipi ed è altamente personalizzabile. Puoi controllare le demo sul sito web. Nella home page mostra anche cosa supporta nella home page e ha un meccanismo di fallback.

http://www.plupload.com/

Edit: E 'disponibile come plugin jQuery.

0

Informazioni su Ajax che non supporta i dati binari durante l'invio del modulo .. esiste una soluzione alternativa; se sei jQuery, puoi usare questo Plugin Form (da malsup) qui allo http://www.malsup.com/jquery/form/. Lo uso da anni ...

Anche il plupload sembra promettente .. complimenti per quello;) devo dire che è un po 'ingombrante !!!

+0

Il codice collegato da qui sembra scrivere i dati binari in una textarea e quindi gestirli appositamente sul back-end. Non ho provato ad usarlo, però. –

+0

Sembra così; ma funziona come un fascino. L'ho usato estensivamente per un progetto per un po 'di tempo. L'ho applicato per inviare moduli HTML di dimensioni enormi. devo dire: ne sono un cliente aperto soddisfatto. lol. –

Problemi correlati