Multiform Data не передается должным образом (AngularJS в uniPaaS)

Я пытаюсь отправить файл Excel со своего локального компьютера на наш веб-сервис.

На мой взгляд, я использую тип ввода "файл" для выбора файла, а затем отправляю этот файл на этот вызов веб-службы:

  uploadArticles: function (file, filename) {
    var fd = new FormData();
    fd.append('UPLOADFILE', file);
    fd.append('APPNAME', 'MY_APP');
    fd.append('PRGNAME', 'UPLOAD_EXCEL');
    fd.append('SESSIONID', '12345');
    fd.append('UPDATE', 'Y');
    fd.append('UPLOADFILENAME', filename);
    fd.append('ARGUMENTS', 'SESIONID,UPLOADFILE,UPLOADFILENAME,UPDATE');

    $http.post(MAGIC_URL, fd, {
      transformRequest: angular.identity,
      headers: {'Content-Type': undefined}
    }).success(function (response) {
      console.log('SUCCESS! ', response);
    }).error(function (response) {
      console.log('ERROR! ', response);
    });
  }

Мы используем uniPaaS, чтобы взять файл BLOB ARGUMENTS и записать его в каталог на нашем сервере. Он работает правильно, однако, когда я пытаюсь открыть сам файл, текст блоба записывается внутри файла Excel. Это почти как если бы файл не интерпретировался должным образом.

Вот пример того, что находится внутри файла Excel:

data:text/rtf;base64,e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcY29jb2FydGYxNDA0XGNvY29hc3VicnRmNDcwCntcZm9udHRibFxmMFxmc3dpc3NcZmNoYXJzZXQwIEhlbHZldGljYTt9CntcY29sb3J0Ymw7XHJlZDI1NVxncmVlbjI1NVxibHVlMjU1O30KXG1hcmdsMTQ0MFxtYXJncjE0NDBcdmlld3cxMDgwMFx2aWV3aDg0MDBcdmlld2tpbmQwClxwYXJkXHR4NzIwXHR4MTQ0MFx0eDIxNjBcdHgyODgwXHR4MzYwMFx0eDQzMjBcdHg1MDQwXHR4NTc2MFx0eDY0ODBcdHg3MjAwXHR4NzkyMFx0eDg2NDBccGFyZGlybmF0dXJhbFxwYXJ0aWdodGVuZmFjdG9yMAoKXGYwXGZzMjQgXGNmMCB0ZXN0IDEyMzR9

Неправильно ли я подхожу к загрузке этого файла?

РЕДАКТИРОВАТЬ:

Я смог решить это. uniPaaS имеет возможность преобразовывать Base64 в BLOB-объекты, но по какой-то причине это не сработало должным образом. Мне удалось преобразовать этот Base64 в BLOB-объект с помощью JavaScript, я отправил BLOB-объект в uniPaaS, и файл был написан правильно.

Для всех, кто сталкивается с этой проблемой, пожалуйста, посмотрите это обсуждение: Создание BLOB-объекта из строки base64 в JavaScript

0 ответов

Другие вопросы по тегам