Способны ли методы Google Chrome Base64 обрабатывать двоичные данные из File API? - PullRequest
2 голосов
/ 04 декабря 2010

Я использую btoa и atob для Base64, но метод atob не работает с двоичными данными!Просто текст.Как я могу решить эту проблему?

if(!!window.createBlobURL || !!window.createObjectURL) {
    var bb = new BlobBuilder();
    var reader = new FileReader();
    var url_creator = window.createBlobURL || window.createObjectURL;
    bb.append(atob(msg.bit.file.data));
    reader.onloadend = function(e) {
      bb = new BlobBuilder();
      bb.append(e.target.result);
      var url = url_creator(bb.getBlob(msg.bit.file.type));
      window.open(url);
    }
    reader.readAsBinaryString(bb.getBlob(msg.bit.file.type));
  }

Где msg.bit.file.data - файл в кодировке base64.

1 Ответ

1 голос
/ 01 мая 2011

Если ваши данные уже двоичные (TypedArray), добавление в BlobBuilder должно просто работать.

Если данные возвращаются из XMLHttpRequest в Chrome, по крайней мере, у вас есть доступ к свойству responseBlob, которое можно использовать непосредственно в BlobBuilder.append ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...