将文件的二进制文件从ajax发送到ashx文件作为application / octet-stream

时间:2016-04-13 14:44:39

标签: javascript c# jquery ajax ashx

我需要使用ajax将文件二进制文件发送到.ashx文件(c#.net环境)。 当我发送它时,“请求有效载荷”必须是Content-Type:“application / octet-stream”,这是服务器端的要求。我的问题是当我运行我的脚本时,它将文件作为普通类型而不是“application / octet-stream”发送。如果文件是jpg,那么它将它作为内容类型发送:“image / jpeg”,这对我不利。我想以二进制格式发送文件。

现在我拥有的是:

var formData = new FormData();
formData.append('file',file);

$.ajax({
  url: gatewayUrl,
  type: "POST",
  data: formData,
  processData: false,
  contentType: false,
  success: function(data){},
  error: function(){}
}); 

我读到了关于FileReader和File.getAsBinary()的内容,但是没有它们正在为我工​​作。我正在与ArrayBuffer挣扎,我不确定我是否正确的方向..

这是我正在考虑的方向,但我无法弄清楚这是否是正确的方式:

function get_file_binary(file){
  var fileReader = new FileReader();
  fileReader.readAsArrayBuffer(file);
  fileReader.onload = function(e){
    var res = fileReader.result;
    var res2 = new Int8Array(res);
    return res2;
  }
}

但是当我尝试这个时,我在chrome上的“Request Payload”中得到“undefined”。

0 个答案:

没有答案