1

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

在我看来,我使用输入类型“文件”来选择文件,然后将该文件发送到此 Web 服务调用:

  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

4

0 回答 0