21 Stimmen

Gmail-ähnlicher Datei-Upload mit jQuery

Ich würde gerne Dateien hochladen, so wie es bei Google Mail möglich ist. Ich möchte jQuery und PHP verwenden, um es zu tun, gibt es irgendwie die Fortschrittsanzeige usw. zu bekommen?

Hier habe ich ein Video hinzugefügt, das zeigt, wie Google das macht. http://dl.getdropbox.com/u/5910/Jing/2009-04-02_1948.swf

Kein Flash, kein Perl oder cgi bitte

Ich denke, ich kann ohne die Fortschrittsanzeige leben, jetzt suche ich eigentlich nach Informationen über Jquery-Plugins oder einfach nur nach Dingen, die ich mir ansehen müsste

13 Stimmen

Nur damit Sie es wissen: Google verwendet Flash in GMail, um dies zu erreichen. Wenn Sie mit der rechten Maustaste auf den Link "Datei anhängen" klicken, werden Sie feststellen, dass es sich um eine transparente SWF-Datei handelt. Außerdem gibt es Möglichkeiten, Dateien asynchron mit iFrames hochzuladen, wenn Sie Flash gar nicht verwenden möchten. Ajax unterstützt einfach keine binären Daten.

1 Stimmen

Ok, wenn Gmail Flash verwendet, wie können sie jetzt auch html5 Datei drag&drop unterstützen?

20voto

Jake Punkte 2027

Es ist seltsam, dass die Leute sagen, dass Google Mail kein Flash verwendet, wenn man die swf-Datei auf der Google Mail-Oberfläche deutlich sehen kann. Versuchen Sie, mit der rechten Maustaste auf "Datei anhängen" zu klicken. Damit können Sie unter anderem mehrere Dateien auf einmal hochladen.

7 Stimmen

Das ist aus dem Jahr 2010, ist das heute noch so?

1 Stimmen

Sie verwenden immer noch Flash für den Datei-Upload auf Google Drive

7voto

Javier Punkte 58737

Am einfachsten wäre es, wenn Sie SWFUpload Es handelt sich um eine kleine Schaltfläche, die in Flash geschrieben wurde, mit allen Hooks, um sie in JS zu steuern. Sehr einfach zu bedienen und funktioniert gut mit PHP

aber, wenn Sie wirklich wollen, dass es reines JS ist, benötigen Sie etwas Hilfe vom Server. insbesondere müssen Sie den Upload starten und regelmäßig den Server abfragen, wie es geht. leider, PHP-Upload-Behandlung erhält keine Benachrichtigung, bis nach dem Download beendet. Sie müssten es mit etwas anderes ersetzen. es gibt ein paar reine JS-Uploader, die Beispiel Perl-Server-Code nur aus diesem Grund enthalten.

D.h. JS und PHP reichen nicht (vollständig) aus. Entweder man fügt Flash auf dem Client hinzu oder einen besseren Upload-Handler auf dem Server.

0 Stimmen

Ja, wenn Sie mit Flash arbeiten können. Das spart Ihnen Tage an Arbeit.

2 Stimmen

SWFUpload ist ausgezeichnet, das einzige Problem ist, dass es keinen Weg gibt, wie man es gracefully degradieren, wenn Flash nicht verfügbar ist, ohne die js Handhabung selbst zu schreiben. Was sie nennen graceful Degradation ist nur die Anzeige von Warnfeld und Ausblenden der Upload-Schaltfläche...

4voto

Philip Jespersen Punkte 2826

Meiner Meinung nach ein ausgezeichneter Artikel zu diesem Thema: http://robertnyman.com/html5/fileapi-upload/fileapi-upload.html

Leider fehlt die Unterstützung für IE und Opera, aber das wird sich hoffentlich ändern.

3voto

NetHawk Punkte 1363

Uploadify ist eine weitere swf (sorry) Upload-Schaltfläche, die Jquery verwendet. Die gleiche Idee wie das, was Javier erwähnt.

1 Stimmen

Es ist schon komisch, dass die Leute anfangen, sich zu entschuldigen, wenn sie sich auf Flash beziehen. Ich habe die Zeit, in der Flash-Splash-Seiten der letzte Schrei waren, (knapp) überlebt, bis jemand auf die Statistik stieß, wie viele Leute auf "Intro überspringen" klickten.

2voto

Aaron Qian Punkte 4227

PHP unterstützt keine direkte Meldung des Upload-Fortschritts. Es gibt also keine Möglichkeit, den Upload-Status zurückzulesen. Es gibt jedoch eine parche die funktionieren könnten. Ich habe es aber noch nicht ausprobiert.

1 Stimmen

PHP braucht nicht einfach Unterstützung des Uploadvorgangs. Es ist möglich, aber es lohnt sich wirklich nicht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X