Upload Fortschritt mit reinem PHP / AJAX?

8

Ich bin mir sicher, dass das schon einmal gefragt wurde, aber da ich keine gute Antwort zu finden scheint, frage ich ... schon wieder. :)

Gibt es eine Möglichkeit, mit nur einer Mischung aus HTML, JavaScript / AJAX und PHP den tatsächlichen Fortschritt eines Datei-Uploads zu melden?

Als Antwort auf irgendjemanden, der SWFUpload oder ähnliches vorschlägt:

Ich weiß alles darüber. Ich war auf dieser Straße. Ich suche nach einer 100% reinen Lösung (und ja, ich weiß, dass ich es wahrscheinlich nicht bekommen werde).

    
Abraham Vegh 17.03.2009, 04:59
quelle

6 Antworten

1

Wenn Sie in Ihrem PHP PECL-Pakete hinzufügen können, gibt es das Paket uploadprogress .

Der einfachste Weg wäre allerdings, swfupload zu verwenden.

    
kkyy 17.03.2009, 08:15
quelle
5

Das Überwachen Ihrer Dateiuploads mit PHP / Javascript erfordert die PECL-Erweiterung:

  

uploadprogress

Ein gutes Beispiel für den Code, der benötigt wird, um den Fortschritt für Ihre Benutzer anzuzeigen, ist:

  

Uber Uploader

Wenn ich mich nicht irre, benutzt es JQuery um mit PHP zu kommunizieren.


Du könntest es auch selbst schreiben. Es ist nicht so komplex.

Fügen Sie ein verborgenes Element als erstes Element des Upload-Formulars mit dem Namen UPLOAD_IDENTIFIER hinzu.

Abfrage eines PHP-Skripts, das uploadprogress_get_info( UPLOAD_IDENTIFIER ) aufruft Es gibt ein Array zurück, das folgendes enthält:

%Vor%

Lassen Sie PHP die Informationen in Javascript zurückgeben und Sie sollten viele Informationen haben. Abhängig von der Zielgruppe werden Sie wahrscheinlich nicht alle verfügbaren Informationen verwenden.

    
Jacco 17.03.2009 11:13
quelle
2

Wenn Sie APC installiert haben (und an diesem Punkt sollten Sie wirklich; es wird Standard in PHP6 sein), es verfügt über eine Option zum Aktivieren der Upload-Verfolgung. Es gibt einige Dokumentationen , und Rasmus hat ein Codebeispiel , das YUI verwendet.

    
Powerlord 17.03.2009 08:54
quelle
1
  

Gibt es eine Möglichkeit, mit nur einer Mischung aus HTML, JavaScript / AJAX und PHP den tatsächlichen Fortschritt eines Datei-Uploads zu melden?

Ich kenne keine Möglichkeit, einfache HTML-Dateiupdates (multipart / form-data) in Webserver-geladenem PHP zu überwachen.

Sie müssen Zugriff auf den Fortschritt des multipart / form-data Parsers haben, wenn die Daten eintreffen, aber das sieht unmöglich aus, da die Zugriffe auf den HTTP-Anfragetext von PHP aus möglich sind ($HTTP_RAW_POST_DATA und php://input ) sind dokumentiert als "nicht verfügbar mit enctype=" multipart / form-data "".

Sie können einen scriptgestützten Datei-Upload in Firefox durchführen, indem Sie die Dateiliste eines Upload-Feldes verwenden, um den Inhalt einer Datei zu erfassen in geteilter oder nicht mehrteiliger Form einzureichen. Immer noch eine Menge Arbeit zu parsen.

(Sie könnten sogar ein PHP-Skript als Standalone-Server auf einem anderen Port ausführen, nur um Datei-Uploads mit Ihrem eigenen HTTP-Handling-Code zu erhalten. Aber das ist eine Menge Arbeit für relativ wenig Gewinn.)

    
bobince 17.03.2009 07:40
quelle
0

Ich würde dir fünf FancyUpload empfehlen, es ist eine wirklich coole Lösung für den Fortschrittsbalken und es ist nicht unbedingt notwendig php. Checkout auch die anderen Tools auf digitarald.de

Prost

    
perrohunter 17.03.2009 07:25
quelle
-1

IMHO, das ist das Problem, das Webbrowser lösen sollten. Wir haben eine Fortschrittsanzeige für Downloads, also warum nicht auch für Uploads?

Sehen Sie sich dies zum Beispiel an:

Ссылка

    
Milan Babuškov 17.03.2009 08:14
quelle

Tags und Links