我已使用 ajax 将文件发送到处理程序页面。但现在我尝试使用 ajax 将文件发送到 webmethod。我无法获取该文件。我已将示例代码放在下面,请给我任何想法。
这是我的javacript代码
<input type="file" id="MsoBill" class="MsoReqdit upload">
var Frmdata = new FormData();
var Files = $("#MsoBill").get(0).files;
Frmdata.append("test", Files[0])
$.ajax({
type: "POST",
url: 'MyForm.aspx/testAjax',
data: '{test:' + Frmdata + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
processData:false,
success: function (res) { debugger; alert(res); },
failure: function (result) {
alert("fail");
}
});
我的服务器端代码
[WebMethod]
public static int testAjax(Object test)
{
return 1;
}
最佳答案
您应该接收(或转换)测试对象到 HttpPostedFileBase,然后执行
MemoryStream target = new MemoryStream();
test.InputStream.CopyTo(target);
byte[] data = target.ToArray(); //here are the bytes
然后只需保存文件或执行您需要的操作:
System.IO.File.WriteAllBytes("path",bytes);
或
test.SaveAs("path");
根据您的需要
关于javascript - 如何使用ajax从客户端将文件发送到服务器端而不使用处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36975950/