Расшифровать тело текстового BLOB-объекта Salesforce с помощью Javascript

У меня есть Javascript, где я извлекаю тело файла статического ресурса:

function test() {
    var query = sforce.connection.query("Select Body from StaticResource where Name = 'StaticResourceFile'");
    var records = query.getArray("records");
    var body = records[0].Body;

Теперь у меня есть доступ к телу, но оно, похоже, зашифровано. Как расшифровать?

Через Apex можно сделать так, а с Javascript не так:

Blob blob = [Select Body from StaticResource where Name = 'StaticResourceFile'].Body;
string body = blob.toString();  // actual file contents!

person dotNetkow    schedule 10.09.2011    source источник


Ответы (2)


Если это объект, с которым вы взаимодействуете похоже, что данные, вероятно, закодированы в Base64. Вам нужно будет как-то расшифровать его. Этот вопрос, по-видимому, охватывает несколько вариантов выполнить декодирование в Javascript.

person bronsoja    schedule 11.09.2011
comment
Спасибо за отзыв. Смотрите мой ответ; ты помог мне добраться до него! - person dotNetkow; 11.09.2011

Отталкиваясь от ответа bronsoja, я искал метод Base64, предоставленный Salesforce. Я нашел один в файле набора инструментов AJAX «connection.js»:

<script type="text/javascript" src="/soap/ajax/22.0/connection.js" />
<script type="text/javascript">
   function test() {
      var test = sforce.connection.query("Select Body from StaticResource where Name = 'StaticResourceFile'");
      var records = test.getArray("records");
      var contents = sforce.Base64Binary.prototype.decode(records[0].Body);
</script>
person dotNetkow    schedule 11.09.2011