BlobBuilder zerstört Binärdaten

7

Ich habe ein Problem mit BlobBuilder (Chrome11) Ich versuche, ein Bild vom Server mit XHR-Anfrage zu erhalten. Dann versuche ich es mit BlobBuilder / FileWriter in lokalen FS zu speichern. Bei jedem Beispiel im Internet geht es um die Arbeit mit text / plain mime type und diese Beispiele funktionieren gut. Aber wenn ich versuche, mit XHR erhaltene Binärdaten zu schreiben, wird die Dateigröße etwa 1,5-2 mal größer als die ursprüngliche Dateigröße. Und es kann nicht in Picasa / Eye Of Gnome angezeigt werden.

%Vor%

fsLink existiert, dies ist die Erweiterung.

    
Dmitrii Sorin 29.05.2011, 21:07
quelle

5 Antworten

15

Das Problem ist, dass BlobBuilder.append(xhr.responseText) sein Argument als UTF-8-String erkennt, was XHR zurückgibt, und nicht binäre Daten, was genau das ist. Es gibt ein paar Tricks, um den BlobBuilder als Binärdaten anstelle von String-Daten zu lesen:

%Vor%

Dies gab mir eine Datei mit der gleichen Länge wie xhr.getResponseHeader('Content-Length') es hätte sein sollen.

    
Stoive 30.05.2011, 03:56
quelle
3

Sie können xhr.responseType='arraybuffer' though verwenden:

%Vor%     
ebidel 17.06.2011 05:14
quelle
1

Ich denke, Stoive ist genau richtig, aber ich möchte darauf hinweisen, dass anstelle von BlobBuilder jetzt der Blob-Konstruktor zur Verfügung steht, der den Trick macht.

%Vor%

Ich denke, das entspricht mehr den aktuellen Standards. Vielen Dank Stoive, sehr hilfreich.

    
Chris Wininger 14.04.2013 23:33
quelle
0

Btw XHR2 stellt einen besseren Weg für die Umsetzung meiner Aufgabe dar:

%Vor%

Die einzige Enttäuschung ist, dass dies immer noch ein Bug in Chrome ist: Ссылка

    
Dmitrii Sorin 13.06.2011 08:25
quelle
0

XMLHttpRequest kann Ссылка nicht laden. Origin-Datei: // ist nicht zulässig von Access-Control-Allow-Origin.

    
user820955 07.07.2011 12:08
quelle