asp.net利用ashx文件实现文件的上传功能
更新时间:2019年11月28日 08:33:55 作者:HerryDong
这篇文章主要介绍了asp.net利用ashx文件实现文件的上传功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
原来以为文件上传是一个比较简单的功能,结果搞了一个晚上才搞定~这里主要介绍两种方法实现。
方法一:Form表单提交
html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>上传文件</title>
<script src="Scripts/jquery-1.11.3.min.js"></script>
</head>
<body>
<form action="UploadHandler.ashx" method="post" enctype="multipart/form-data">
<input id="file_upload" name="file_upload" type="file" />
<input id="btn_upload" type="submit" value="上传" />
</form>
</body>
</html>
UploadHandler.ashx代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1
{
/// <summary>
/// UploadHandler 的摘要说明
/// </summary>
public class UploadHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
HttpPostedFile file = context.Request.Files["file_upload"];
string filePath = context.Server.MapPath("~/UploadFiles/") + System.IO.Path.GetFileName(file.FileName);
file.SaveAs(filePath);
context.Response.Write("上传文件成功");
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
该方法虽然能够实现文件的上传,但是form表单提交之后整个页面就刷新了,如果要无刷新上传文件的话,就要使用ajax了。
方法二:jquery + ajax无刷上传
html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>上传文件</title>
<script src="Scripts/jquery-1.11.3.min.js"></script>
</head>
<body>
<input id="file_upload" name="file_upload" type="file" />
<input id="btn_upload" type="button" value="上传" />
<script>
$(document).ready(function ()
{
$('#btn_upload').bind('click', function ()
{
var formData = new FormData();
formData.append('upload_file', $('#file_upload')[0].files[0]);
$.ajax({
url: 'UploadHandler.ashx',
type: 'post',
data: formData,
contentType: false,
processData: false,
success: function (msg)
{
if (msg == "Yes")
{
alert('文件上传成功');
}
else
{
alert('文件上传失败');
}
}
})
});
});
</script>
</body>
</html>
UploadHandler.ashx代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1
{
/// <summary>
/// UploadHandler 的摘要说明
/// </summary>
public class UploadHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
if (context.Request.Files.Count > 0)
{
HttpPostedFile file = context.Request.Files["upload_file"];
string filePath = context.Server.MapPath("~/UploadFiles/") + System.IO.Path.GetFileName(file.FileName);
file.SaveAs(filePath);
context.Response.Write("Yes");
}
else
{
context.Response.Write("No");
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
个人更推荐方法二,运行结果如下图所示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
ASP.NET生成eurl.axd Http异常错误的处理方法
在IIS6中同时启用了ASP.NET 2.0 和 ASP.NET 4.0 后,网站程序可能会出现如下错误:“ System.Web.HttpException: Path ‘//eurl.axd/‘ was not found. ”2011-05-05
Entity Framework Core实现软删除与查询过滤器
这篇文章介绍了Entity Framework Core实现软删除与查询过滤器的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-02-02
.Net Core使用Logger实现log写入本地文件系统
这篇文章介绍了.Net Core使用Logger实现log写入本地文件系统的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-06-06


最新评论