BlobBuilder разрушает двоичные данные

У меня проблема с BlobBuilder (Chrome11) Я пытаюсь получить изображение с сервера с запросом XHR. Затем я пытаюсь сохранить его в локальной файловой системе с помощью BlobBuilder / FileWriter. Каждый пример в Интернете посвящен работе с типом text / plain mime, и эти примеры работают нормально. Но когда я пытаюсь записать двоичные данные, полученные с помощью XHR, размер файла становится примерно в 1,5-2 раза больше, чем исходный размер файла. И его нельзя просмотреть в Picasa / Eye Of Gnome.

var xhr = new XMLHttpRequest();
var photoOrigUrl = 'http://www.google.ru/images/nav_logo72.png';
xhr.open('GET', photoOrigUrl, true);
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
        var contentType = xhr.getResponseHeader('Content-type');

        fsLink.root.getFile('nav_logo72.png', {'create': true}, function(fileEntry) {
            fileEntry.createWriter(function(fileWriter) {
                var BlobBuilderObj = new (window.BlobBuilder || window.WebKitBlobBuilder)();
                BlobBuilderObj.append(xhr.responseText);

                fileWriter.write(BlobBuilderObj.getBlob(contentType));
            }, function(resultError) {
                console.log('writing file to file system failed (   code ' + resultError.code + ')');
            });
        });
    }
}

xhr.send();

fsLink существует, это расширение.

7
задан Dmitrii Sorin 29 May 2011 в 21:07
поделиться