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