Der Martin: Upload per Drag&Drop erzeugt leere Datei?

Beitrag lesen

Hallo Klaus,

über ein einfaches <input id="upload" name="upload" type="file"> möchte ich eine Datei hochladen. Im Javascript hole ich mir dann das Objekt: var file = document.getElementById("upload").files[0];

Das funktioniert auch prima, wenn der Anwender auf Durchsuchen klickt und die Datei auswählt oder per Drag&Drop auf das Feld zieht.

mir war neu, dass man mit Javascript derart auf ein <input type="file"> zugreifen kann, das musste ich selbst erstmal nachlesen. Man lernt ja täglich dazu.

Nur wenn der Anwender die Datei aus seinem Mailprogramm per Drag&Drop auf das Feld zieht

Meinst du einen Dateianhang aus einer Mailnachricht?

ist zwar das Objekt auch vorhanden, aber es fehlt die Dateigröße.
Alle anderen Informationen wie lastModified, name und type sind aber vorhanden.

Ich bin überrascht, dass du auf diese Weise überhaupt etwas bekommst. Denn die Datei existiert ja in dem Moment gar nicht als solche, sondern nur als base64-codierte Textwurst im Mail-Quelltext.
Woher Javascript hier ein lastModified kriegt, ist mir auch schleierhaft, denn diese Information geht bei einem Dateianhang verloren. Die ursprüngliche Dateigröße steht dagegen im Mail-Quelltext zur Verfügung. Wenn überhaupt, dann hätte ich eher erwartet, dass du einen Wert für size bekommst, aber kein gültiges lastModified-Datum.

Hat jemand eine Idee, woran das liegt und wie ich das hinbekomme, dass der Anwender auch aus seinem Mailprogramm eine Datei hochladen kann, ohne sie vorher speichern zu müssen?

Ich vermute mal, das ist so nicht möglich - oder wenn, dann ist es sehr stark vom verwendeten Mailclient abhängig.

Live long and pros healthy,
 Martin

--
Hunde, die bellen, beißen nicht.
Jedenfalls nicht gleichzeitig.