Hochladen einer binären Zeichenfolge in WebKit / Chrome mit XHR (entspricht Firefox sendAsBinary)

8

Ich arbeite an einer Webanwendung, die mehrere hochmoderne WebKit-Funktionen verwendet. Es tut dies im Wesentlichen: liest eine lokale Datei mit dem FileReader , entpackt jede Datei in eine Zeichenkette unter Verwendung einer JavaScript-Unzip-Bibliothek und sendet jede Datei per POST mit XMLHttpRequest. Dies funktioniert hervorragend für Textdateien, aber leider verdirbt es Binärdateien (in diesem Fall Bilder). Firefox hat eine sendAsBinary -Methode, die dieses Problem löst, aber es ist nicht Standard und mehr auf den Punkt, es funktioniert nicht auf WebKit / Chrome, auf die wir für andere Funktionen angewiesen sind.

Es gibt eine Menge von Workarounds, und bis jetzt funktioniert keiner von ihnen für mich:

  • Verspottung einer Datei-Upload-Anfrage mit Kopfzeilen, Begrenzungen und so weiter in einer langen Zeichenfolge ( wie folgt ).
  • Eine Reihe von Headern auf dem xhr-Objekt ( als solche )
  • setzen
  • Verwenden Sie BlobBuilder , hängen Sie die Zeichenfolge an den Builder an und verwenden Sie getBlob , um ein Blob zum Hochladen zu erhalten ( wie empfohlen im Chrome-Thread zu diesem Thema)

Was ich am meisten suche, ist eine vorwärtskompatible Lösung. Danke!

    
heydenberk 18.09.2010, 19:01
quelle

2 Antworten

6

Ich hatte das gleiche Problem.

Dieser hat für mich funktioniert:

%Vor%

Hier klicken: Ссылка

    
Sebastien 25.03.2012, 13:26
quelle
1

Sie können es mit base64 verschlüsseln und es auf dem Server dekodieren.

    
jcubic 19.09.2010 14:59
quelle