Klaus1: Upload per Drag&Drop erzeugt leere Datei?

Beitrag lesen

Hallo Martin,

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

Meinst du einen Dateianhang aus einer Mailnachricht?

Ja genau, ein (echtes, kein Embedded) Attachment 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.

Ich vermute, dass das Mailprogramm dazu das Attachment aus der Mail in ein Temp-Verzeichnis schreibt. Damit wäre dann wieder ein lastModified vorhanden. Ich verstehe nur nicht, warum alle anderen Informationen, vorallem auch der Typ (z.B. application/pdf) erkannt werden, aber nicht die Größe.

Bei weiteren Tests ist mir aufgefallen, dass das Rüberziehen der ganzen Mail funktioniert (kommt dann als EML-Datei an). Ich habe es auch mit einer Drag&Drop-Area getestet, um das Input-Element auszuschließen, aber auch hier ist das Verhalten identisch. Lokale Datei per Drag&Drop funktioniert, die ganze Mail auch, das Attachment aber nicht.

Jetzt muss ich wohl die EML-Datei parsen, die embedded attachments ignorieren und gegebenenfalls noch eine Auswahl einblenden, wenn in der Mail mehrere Attachments vorhanden sind (oder gleich alle hinzufügen). 😟

LG Klaus