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
本文地址:http://www.jygsgssxh.com/a1/ASP_NET/10840.html
您可能感興趣的文章
- 01-11如何給asp.net core寫個簡單的健康檢查
- 01-11docker部署Asp.net core應用的完整步驟
- 01-11ASP.NET Core靜態(tài)文件的使用方法
- 01-11asp.net Core3.0區(qū)域與路由配置的方法
- 01-11ASP.Net Core中使用枚舉類而不是枚舉的方法
- 01-11Asp.net core利用MediatR進程內發(fā)布/訂閱詳解
- 01-11ASP.NET Core中間件計算Http請求時間示例詳解
- 01-11asp.net core集成JWT的步驟記錄
- 01-11ASP.NET Core MVC學習教程之路由(Routing)
- 01-11ASP.NET Core實現自定義WebApi模型驗證詳解


閱讀排行
本欄相關
- 01-11vscode extension插件開發(fā)詳解
- 01-11VsCode插件開發(fā)之插件初步通信的方法
- 01-11如何給asp.net core寫個簡單的健康檢查
- 01-11.net core高吞吐遠程方法如何調用組件
- 01-11淺析.Net Core中Json配置的自動更新
- 01-11.NET開發(fā)人員關于ML.NET的入門學習
- 01-11.NET Core 遷移躺坑記續(xù)集之Win下莫名其
- 01-11.net core webapi jwt 更為清爽的認證詳解
- 01-11docker部署Asp.net core應用的完整步驟
- 01-11ASP.NET Core靜態(tài)文件的使用方法
隨機閱讀
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 04-02jquery與jsp,用jquery
- 01-11ajax實現頁面的局部加載
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05dedecms(織夢)副欄目數量限制代碼修改
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實例總結
- 08-05織夢dedecms什么時候用欄目交叉功能?


