如何从服务器读取doc文件,然后通过javascript中的XHR将其上传到另一台服务器?

时间:2015-08-03 15:40:58

标签: javascript xmlhttprequest

我正在从服务器xyzserver/Education.doc发出get请求并记录响应,它显示:

  

ࡱ > \ ^ [ ` bjbj s s4> 2z#z#z#z# # 2 @ 6 $ 6 $ 6 $ 6 $ 6 $ I%I%I%R @ T @ T @ T @ T @ T @ T @ $ AHED:@   “E%I%   “   '@ 6 $ 6 $ @' ''   '6 $ 6 $ R @'   'R @' 'H9< = 6 $ * $ 3Z#' < = @ 0 @,

我想通过XHR请求将此数据/文件上传到另一台服务器 我这样做了:

xhr.send({ url : "http://abcserver/abc.doc", method : "GET" }, function(data) {
  if ( data.status == 200 && data.response != null ) {
    var fd = new FormData();
    fd.append('file', data.response);
    XHR.open('POST', 'http://abc/upload');
    XHR.setRequestHeader('Content-Type', 'multipart/form-data');
    XHR.sendAsBinary(fd);
  }
  else { // something went wrong
    console.log("something is wrong");
  }
});

但它失败了。
这是请求标题:

  

接受: /   Accept-Encoding:gzip,deflate   接受语言:EN-US,EN; Q = 0.8,喜; Q = 0.6   缓存控制:最大年龄= 0   连接:保持活跃   内容长度:59256   内容类型:多部分/格式数据;边界= gc0p4Jq0M2Yt08jU534c0p   主持人:本地主机:8080   起源:http://stackoverflow.com   引用者:Can't append <script> element   User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 537.36(KHTML,类似Gecko)Chrome / 44.0.2403.125 Safari / 537.36   请求有效负载   ------ WebKitFormBoundaryDwpm9n3Ucp31JnIC   内容处理:表格数据; NAME = “文件”

     

ࡱ &gt; \ ^ [ ` bjbj s s4&gt; 2z#z#z#z# # 2 @ 6 $ 6 $ 6 $ 6 $ 6 $ I%I%I%R @ T @ T @ T @ T @ T @ T @ $ AHED:@   “E%I%   “   '@ 6 $ 6 $ @' ''   '6 $ 6 $ R @'   'R @' 'H9&LT; = 6 $ * $ 3Z#' &LT; = @ 0 @,

发生了什么事?如何解决此问题并实现上传?

1 个答案:

答案 0 :(得分:0)

看看on the MDN doc

您可以尝试使用

function createMatrix(N, M) {
    var matrix = new Array(N); // Array with initial size of N, not fixed!

    for (var i = 0; i < N; ++i) {
        matrix[i] = new Array(M);
    }

    return matrix;
}

通知浏览器您正在使用某些二进制类型。

Sample JSFiddle to fetch a .doc file