javascript - 如何使用ajax从客户端将文件发送到服务器端而不使用处理程序?

标签 javascript c# jquery ajax

我已使用 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/

相关文章:

jquery - 使用 AJAX jQuery 和 SOAP 调用 WebService

javascript - 动态添加 Y Axis Chartjs

c# - 向 XML 文件添加注释并使用 C# 读入

c# - 如何查看将哪个类作为参数传递给 Rider 中的模板?

javascript - 显示使用 Ajax 加载的 Bootstrap 选项卡在第一次单击时不起作用

jquery - 有什么好的 jQuery 拖放文件上传插件吗?

javascript - 创建用于向元素添加样式的原型(prototype)函数

javascript - 为 HTTP 响应在 Node.JS 中迭代对象

javascript - 数字楼梯 - 嵌套 for 循环

c# - 带有用户输入验证的 KeyDown 事件