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;
}
}
}
}
個人更推薦方法二,運行結果如下圖所示:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
在.Net?Framework應用中請求HTTP2站點的問題解析
隨著各大瀏覽器支持和蘋果的帶頭效應,HTTP2的應用會越來越廣泛,但是規(guī)模龐大的.NET?Framework應用卻也不能為了連接HTTP2就升級到NET?Core平臺。通過本文提供的方案,可以最小成本的實現.NET?Framework應用成功訪問HTTP2站點,感興趣的朋友跟隨小編一起看看吧2022-07-07
ASP.NET Core 數據保護(Data Protection)中篇
這篇文章主要為大家再一次介紹了ASP.NET Core 數據保護(Data Protection),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09

