cr: Upload Statusanzeige?!?

Hallo zusammen,

mit php ist es ja leider nicht möglich, den Status (z.B. 100kb von 800kb bereits geladen) anzuzeigen. Da ich auch in der Comunity studivz angemeldet bin, und da neulich ein foto hochgeladen habe, wurde ich mit großen augen begeistert...die haben das was ich will...diese ladeanzeige. Leider konnte ich nicht rausfinden, mit welcher Technik dies realisiert wurde...

Könnt ihr mir da helfen bzw Tips geben, welche Scriptsprache dies realisieren lässt?

Vielen Dank und frohe Weihnachten!

cr

  1. Mit PHP geht es tatsächlich nicht - es sei denn, man verwendet Adobe Flash für den Upload oder einen inoffiziellen Patch für PHP. Ansonsten geht es mit fast jeder Scriptsprache, vorausgesetzt, Du übernimmst das Einlesen der POST-Daten selbst. Ich habe bspw. mal eine solche Lösung in Lua realisiert, wobei auch Umsetzungen in Perl, Python oder anderen Sprachen (sofern diese die POST-Daten nicht per default selbst auswerten - und das macht meines Wissens nur PHP) denkbar wären. Dabei ist wichtig, dass die CGI-Schnittstelle mehrere Threads parallel unterstützt.

    Falls Du also die Statusanzeige nicht clientseitig erzeugst, benötigst Du eine Abfrage am Server, die den Status des Uploads zurückgibt. Dazu bietet sich folgende Technik an:

    Das Upload-Formular liefert im GET-Parameter oder als Cookie eine Session mit, die man vor der Verwertung der POST-Daten ausliest, denn sie ist wichtig, um die Abfrage des Clients korrekt zuordnen zu können. Im Environment stehen jetzt auch die Länge der Post-Daten, die unser Upload-Script nun blockweise einliest. Jetzt können wir bei einer zusätzlichen Abfrage des Sessioncodes die Anzahl der gelesenen Daten und die gesamte Datenmenge zurückliefern und dieses Clientseitig auswerten.

    Gruß, LX

    --
    X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: Unusual
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Mit PHP geht es tatsächlich nicht - es sei denn, man verwendet Adobe Flash für den Upload oder einen inoffiziellen Patch für PHP.

      File Upload Hooks waeren ein Stichwort fuer PHP.
      Braucht AFAIK die ACP-Erweiterung.

      MfG ChrisB

      --
      „This is the author's opinion, not necessarily that of Starbucks.“
  2. (Hallo|Ho, ho, ho|Nabend) cr,

    Hallo zusammen,

    mit php ist es ja leider nicht möglich, den Status (z.B. 100kb von 800kb bereits geladen) anzuzeigen. Da ich auch in der Comunity studivz angemeldet bin, und da neulich ein foto hochgeladen habe, wurde ich mit großen augen begeistert...die haben das was ich will...diese ladeanzeige. Leider konnte ich nicht rausfinden, mit welcher Technik dies realisiert wurde ...

    </archiv/2007/11/t162439/#m1057075>

    Könnt ihr mir da helfen bzw Tips geben, welche Scriptsprache dies realisieren lässt?

    Ich frage mich immer, welchen Nutzen eine solche "Füllstandsanzeige" innerhalb einer dargestellten Web-Seite hat. Einerseits funktioniert sie nicht mehr, wenn ich auf den Java-Script-Aus-Knopf drücke, andererseits hat jeder vernünftige Browser (mit grafischer Oberfläche) so eine Anzeige eingebaut.

    MffG
    EisFuX

    1. Mit einen iframe und geschickten Weiterleitungen sowie einer leichten Anpassung der Servertechnik läßt sich ein solcher Effekt auch ohne JavaScript realisieren. Allerdings lohnt sich so etwas erst ab 1-2MB Uploads, da der meta refresh mindestens eine Sekunde brauchen sollte, um den Server nicht unnötig zu belasten.

      Gruß, LX

      --
      X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: Unusual
      X-Please-Search-Archive-First: Absolutely Yes
      1. (Hallo|Ho, ho, ho|Mahlzeit) LX,

        Mit einen iframe und geschickten Weiterleitungen sowie einer leichten Anpassung der Servertechnik läßt sich ein solcher Effekt auch ohne JavaScript realisieren.

        Bleibt die Frage: Wozu der Aufwand?
        Ob jetzt nun ein JavaScript per XMLHTTPRequest oder IFrame-Call oder auch nur ein regelmäßig "meta-refresh"-tes IFrame ständig unnötige Anfragen an den Server schickt -- es bleibt eine unnötige Belastung des Servers, weil der Client den aktuellen Stand des Fileuploads doch schon kennt. Und wie schon gesagt: Brauchbare Browser zeigen ihn sowieso an.

        Allerdings lohnt sich so etwas erst ab 1-2MB Uploads, da der meta refresh mindestens eine Sekunde brauchen sollte, um den Server nicht unnötig zu belasten.

        Hmm, jetzt stell dir mal einen Dorf-DSL-1000-Zugang vor, der mit 128 KBytes pro Sekunde im Upstream auskommen muss:
        Das wären dann bei 1M(i)B: 1024/128 == 8 unnötige Anfragen, bei 2 MiB schon 16, und von ISDN- oder Modem-Zugängen reden
        wir da mal gar nicht erst. ;-)

        Die Möglichkeit, einen unterbrochenen Upload wieder aufzunehmen, wäre da ein wesentlich interessanteres Feature. Aber mit PHP auf'm Server kann man das wohl auf absehbare Zeit knicken.

        MffG
        EisFuX

        1. Hallo,

          Hmm, jetzt stell dir mal einen Dorf-DSL-1000-Zugang vor, der mit 128 KBytes pro Sekunde im Upstream auskommen muss:

          ein DSL1000-Zugang schafft niemals 128kBytes/s im Upstream, sondern typischerweise 128kbit/s. Da du denselben Fehler aber auch bei den 1024k Downstream gemacht hast, bleibt das Verhältnis gleich.

          und von ISDN- oder Modem-Zugängen reden wir da mal gar nicht erst. ;-)

          Auweia, das wäre übel: Ungefähr alle 5..6kB ein unnötiger Request, der seinerseits einige hundert Bytes hin- und herschiebt ...

          So long,
           Martin

          --
          In Ägypten haben früher 150000 Leute 35 Jahre lang an einer Pyramide gearbeitet. Aber bei uns arbeiten doppelt so viele Leute doppelt so lange allein an der Baugenehmigung.
            (Dieter Nuhr, deutscher Kabarettist)
          1. Hello,

            Auweia, das wäre übel: Ungefähr alle 5..6kB ein unnötiger Request, der seinerseits einige hundert Bytes hin- und herschiebt ...

            Welche Mindestgröße müsste denn ein Paket mit einem HTTP-Request überhaupt haben, damit es noch sinnvoll sein kann?

            Liebe Grüße aus Syburg bei Dortmund

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
          2. (Hallo|Ho, ho, ho|Nabend) Der Martin,

            Hmm, jetzt stell dir mal einen Dorf-DSL-1000-Zugang vor, der mit 128 KBytes pro Sekunde im Upstream auskommen muss:

            ein DSL1000-Zugang schafft niemals 128kBytes/s im Upstream, sondern typischerweise 128kbit/s. Da du denselben Fehler aber auch bei den 1024k Downstream gemacht hast, bleibt das Verhältnis gleich.

            Also richtiges Endergebnis trotz falschem Rechenwegs -- oder zumindest so ähnlich. ;-)
            Das liegt an Weihnachten: Zu viel ungesundes Essen, zu viele ungesunde Getränke, zu viele nervende Verwandte (jetzt sind sie alle endlich wieder weg) etc.

            und von ISDN- oder Modem-Zugängen reden wir da mal gar nicht erst. ;-)

            Auweia, das wäre übel: Ungefähr alle 5..6kB ein unnötiger Request, der seinerseits einige hundert Bytes hin- und herschiebt ...

            Ja, das Internet-Prekariat ist eben arm dran.

            MffG
            EisFuX

        2. Hello,

          Ob jetzt nun ein JavaScript per XMLHTTPRequest oder IFrame-Call oder auch nur ein regelmäßig "meta-refresh"-tes IFrame ständig unnötige Anfragen an den Server schickt -- es bleibt eine unnötige Belastung des Servers, weil der Client den aktuellen Stand des Fileuploads doch schon kennt. Und wie schon gesagt: Brauchbare Browser zeigen ihn sowieso an.

          Dann fehlt also einfach eine JavaScript-Funktion. Die könnten die Browserhersteller doch mal einbauen.

          Liebe Grüße aus Syburg bei Dortmund

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. (H[ae]llo|Ho, ho, ho|Nabend) Tom,

            Ob jetzt nun ein JavaScript per XMLHTTPRequest oder IFrame-Call oder auch nur ein regelmäßig "meta-refresh"-tes IFrame ständig unnötige Anfragen an den Server schickt -- es bleibt eine unnötige Belastung des Servers, weil der Client den aktuellen Stand des Fileuploads doch schon kennt. Und wie schon gesagt: Brauchbare Browser zeigen ihn sowieso an.

            Dann fehlt also einfach eine JavaScript-Funktion.

            Sowas wie die Gears-Klassen HttpRequestUpload und ProgressEvent (nur ohne den Umweg übers Server-Polling)?

            Die könnten die Browserhersteller doch mal einbauen.

            http://michaelkimsal.com/blog/why-do-browsers-still-not-have-file-upload-progress-meters/

            MffG
            EisFuX