Multiform Data无法正常传输(AngularJS到uniPaaS)

时间:2016-09-20 20:09:29

标签: javascript angularjs forms multipartform-data magic-unipaas

我正在尝试将Excel文件从本地计算机发送到我们的网络服务。

在我看来,我使用输入类型“file”来选择文件,然后我将该文件发送到这个webservice调用:

  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获取ARGUMENTS文件blob并将其写入我们服务器上的目录。它工作正常,但是当我尝试打开文件本身时,blob文本正在Excel文件中写入。这几乎就好像文件没有被正确解释一样。

以下是Excel文件内部的示例:

data:text/rtf;base64,e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcY29jb2FydGYxNDA0XGNvY29hc3VicnRmNDcwCntcZm9udHRibFxmMFxmc3dpc3NcZmNoYXJzZXQwIEhlbHZldGljYTt9CntcY29sb3J0Ymw7XHJlZDI1NVxncmVlbjI1NVxibHVlMjU1O30KXG1hcmdsMTQ0MFxtYXJncjE0NDBcdmlld3cxMDgwMFx2aWV3aDg0MDBcdmlld2tpbmQwClxwYXJkXHR4NzIwXHR4MTQ0MFx0eDIxNjBcdHgyODgwXHR4MzYwMFx0eDQzMjBcdHg1MDQwXHR4NTc2MFx0eDY0ODBcdHg3MjAwXHR4NzkyMFx0eDg2NDBccGFyZGlybmF0dXJhbFxwYXJ0aWdodGVuZmFjdG9yMAoKXGYwXGZzMjQgXGNmMCB0ZXN0IDEyMzR9

我是否接近此文件上传不正确?

修改

我能够解决这个问题。 uniPaaS能够将Base64转换为Blob,但无论出于何种原因,它都无法正常工作。我能够使用JavaScript将此Base64转换为Blob,我将blob发送到uniPaaS,并且文件写得正确。

对于遇到此问题的其他人,请参阅此讨论:Creating a Blob from a base64 string in JavaScript

0 个答案:

没有答案