Klaus1: Wie kann ich ein Blob an PHP-Ajax übertragen?

Beitrag lesen

Hallo,

sorry, für die späte Antwort, ich hatte gestern komplett Internet-Ausfall :(

Es funktioniert alles so, wie es soll. Du fütterst blob mit der Ausgabe von readAsDataURL() – und genau das bekommst du dann auch geliefert: eine data:-URL.

Die Rohdaten bekommst du mit readAsArrayBuffer().

Das werde ich direkt mal ausprobieren, vielen Dank.

Davon unabhängig könntest du eigentlich file auch direkt an myform.append() übergeben. Den Sinn des Umweges über FileReader und blob sehe ich in diesem Beispiel nicht.

Den Umweg muss ich wohl gehen, da eine per Drag&Drop aus meinem Mail-Programm übertragenes Attachment im file-object die Größe 0 hat. Damit wurde vom PHP immer nur eine 0-Byte-Datei erstellt. In einem anderen Projekt verwende ich den FileReader bereits, um den Inhalt von Mails (auch per Drag&Drop) zu parsen, da hatte ich die Anhänge allerdings nicht gespeichert, sondern nur als Link angezeigt.

Ich gehe mal davon aus, dass das nur ein Test sein soll und du $name aus dem Formular nicht wirklich völlig ungeprüft als Dateinamen auf deinem Server benutzen willst.

Klar, ich überprüfe vorher auf Sonderzeichen und auch den Dateityp. Aber welche Risiken könnten dadurch noch entstehen? Außer, dass der Server die Datei zwar speichert, sie aber nicht mehr gelesen werden kann (z.b. wenn deutsche Umlaute im Linux als Fragezeichen gespeichert werden).

LG Klaus