如何在没有任何回发的情况下异步上传文件到asp.net网站(Webforms)?
答案 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;
}
}