Javascript 将二进制文件作为应用程序/八位字节流从ajax发送到ashx文件
我需要用ajax将一个二进制文件发送到.ashx文件(c#.net环境)。 当我发送它时,“请求负载”必须是内容类型:“应用程序/八位字节流”,这是服务器端的要求。我的问题是,当我运行脚本时,它以普通类型而不是“应用程序/八位字节流”发送文件。如果文件是jpg,那么它会将其作为内容类型发送:“image/jpeg”,这对我不好。我想用二进制格式发送文件 现在我得到的是:Javascript 将二进制文件作为应用程序/八位字节流从ajax发送到ashx文件,javascript,c#,jquery,ajax,ashx,Javascript,C#,Jquery,Ajax,Ashx,我需要用ajax将一个二进制文件发送到.ashx文件(c#.net环境)。 当我发送它时,“请求负载”必须是内容类型:“应用程序/八位字节流”,这是服务器端的要求。我的问题是,当我运行脚本时,它以普通类型而不是“应用程序/八位字节流”发送文件。如果文件是jpg,那么它会将其作为内容类型发送:“image/jpeg”,这对我不好。我想用二进制格式发送文件 现在我得到的是: var formData = new FormData(); formData.append('file',file); $
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上的“请求有效负载”中得到了“未定义”