如何使用Ajax将文件上传到asp.net?

时间:2013-04-27 11:05:05

标签: jquery asp.net ajax

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

1 个答案:

答案 0 :(得分:0)

为此目的,使用jQuery Forms plugin很简单。我们可以在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;
    }
}