Michael: Dateigröße bei input type=file im Voraus bestimmen

Moin, Gemeinde!

Problem:
Ich habe ein Formular zum Datei-Upload. Nun dachte ich mir, dass es fein wäre, dem Uploader eine runtertickende Uhr zu zeigen, wie lang es wohl noch dauern wird. Dies soll aus einer Berechnung der Dateigröße und der Verbindungsgeschwindigkeit erfolgen, die Transferrate muss der Besucher eben eingeben (abfragen kann man das ja wohl nirgends, oder?).
Eine Echtzeit-Statusanzeige ist nicht machbar, so jedenfalls hab ich das ausm Forum für mich resümiert. Darum eben dieser Versuch, quasi "parallel" zum Upload die Zeitanzeige zu starten.

Und nun eben die Frage:
Für diese Berchnung brauche ich die Dateigröße. Dass es per cgi nicht geht, da externer Rechner, steht auch irgendwo im Forum. Darum meine Idee: Da ja der Uploader sein File selbst auswählt und daraufhin der komplette Pfad des Uploadrechners im Fenster zu sehen ist, könnte es doch sein, dass weitere Infos über die Datei, wie eben beispielsweise die Dateigröße, auch mit übermittelt werden?
Elegantestens wäre das Auslesen per JavaScript, ich hab aber auch nichts gegen cgi.

Bin für jede Hilfe/Anregung dankbar, vielleicht auch nur andere Ideen, wie man es angehen könnte.

P.S.: Meine erste Idee war Auslesen der IP, dann Dateigröße per cgi nach Muster $bytes = (-s "IP/pfad/datei.zip"); ermitteln - aber das haut wohl kaum hin, eben wegen der Zugriffsrechte (und der Probleme, die 'richtige' IP herauszufinden), hm?

Gruß & Danke im Voraus,

Michael

  1. Hi,

    Nun dachte ich mir, dass es fein wäre, dem Uploader eine runtertickende Uhr zu zeigen, wie lang es wohl noch dauern wird.

    no way. Du hast mit JavaScript eh keinen Zugriff auf Dateien, kannst die Dateigröße also nicht ermitteln; und wenn Du es hättest, wüßtest Du niemals, wie viele der Daten bereits versendet wurden.

    Verbindungsgeschwindigkeit

    Es ist höchstens die _Maximalgeschwindigkeit_ bekannt, welche Dir nicht mehr sagt, als die Maximalgeschwindigkeit für massebehaftete Objekte. Die Lichtgeschwindigkeit wird nämlich auch nur verhältnismäßig selten erreicht.

    (abfragen kann man das ja wohl nirgends, oder?).

    Nein.

    Darum eben dieser Versuch, quasi "parallel" zum Upload die Zeitanzeige zu starten.

    "Bis jetzt hätten x Byte übertragen werden können, wenn dem so wäre."

    Sorry, aber diese Angabe ist nutzarm. Du kannst ja einen kleinen Taschenrechner per JavaScript schreiben, der per alert() etwas in der Art: "Im Idealfall dauert die Übertragung ca. ..." ausgibt.

    P.S.: Meine erste Idee war Auslesen der IP, dann Dateigröße per cgi [...]

    Wenn Du die Dateigröße bzw. Datenmenge in einem CGI-Script ermitteln kannst, wurden die Daten bereits vollständig übertragen. Du kannst umgehend die Bestätigungsseite ausgeben.

    Cheatah

    1. Alles klar,

      vielen Dank für die Mühe. Dann geht es eben einfach nicht und Punkt. Schade zwar, aber nicht zu ändern.
      Zumindest freut es mich (lachendes und weinendes Auge..<g>), dass es keine Pipifaxlösung gibt, für die ich einfach schon zu verbohrt war.

      Danke nochmal,

      Michael