1

如何在没有任何回发的情况下将文件异步上传到 asp.net 网站(Webforms)?

4

1 回答 1

0

为此目的,使用jQuery Forms 插件很简单。我们可以在 asp webforms 中使用它,如下所示。

HTML / ASPX 页面

    <form id="myForm" action="fileupload.ashx" method="post"> 
        Name: <input type="text" name="name" /> 
        File: <input type="file" name="filetoupload" />
        <input type="submit" value="Submit Comment" /> 
    </form>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
        <script src="http://malsup.github.com/jquery.form.js"></script> 
     <script>
         $(document).ready(function () {
        // attach handler to form's submit event 
        $('#myForm').submit(function () {
            // submit the form 
            $(this).ajaxSubmit();
            // return false to prevent normal browser submit and page navigation 
            return false;
        });
    });
</script>

本示例中使用的纯 HTML。如果是aspx webforms,那么页面中将只有一个表单标签。

将 WebHandler(.ashx 扩展名)添加到网站。

using System;
using System.Web;

public class Handler : IHttpHandler {

public void ProcessRequest (HttpContext context) {
    HttpPostedFile MyFile=context.Request.Files["filetoupload"];
    if (MyFile.ContentLength > 0 && MyFile != null)
    {
        MyFile.SaveAs(context.Server.MapPath("Path/On/Server"));
    }
    context.Response.Write("Saved Successfully");
}

public bool IsReusable {
    get {
        return false;
    }
}
于 2013-11-19T09:15:10.887 回答