asp.net利用ashx文件實現(xiàn)文件的上傳功能
更新時間:2019年11月28日 08:33:55 作者:HerryDong
這篇文章主要介紹了asp.net利用ashx文件實現(xiàn)文件的上傳功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
原來以為文件上傳是一個比較簡單的功能,結果搞了一個晚上才搞定~這里主要介紹兩種方法實現(xiàn)。
方法一: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; } } } }
該方法雖然能夠實現(xiàn)文件的上傳,但是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抓取網(wǎng)頁內容的實現(xiàn)方法
這篇文章主要介紹了ASP.NET抓取網(wǎng)頁內容的實現(xiàn)方法,涉及使用HttpWebRequest及WebResponse抓取網(wǎng)頁內容的技巧,需要的朋友可以參考下2015-02-02在.Net?Framework應用中請求HTTP2站點的問題解析
隨著各大瀏覽器支持和蘋果的帶頭效應,HTTP2的應用會越來越廣泛,但是規(guī)模龐大的.NET?Framework應用卻也不能為了連接HTTP2就升級到NET?Core平臺。通過本文提供的方案,可以最小成本的實現(xiàn).NET?Framework應用成功訪問HTTP2站點,感興趣的朋友跟隨小編一起看看吧2022-07-07ASP.NET Core 數(shù)據(jù)保護(Data Protection)中篇
這篇文章主要為大家再一次介紹了ASP.NET Core 數(shù)據(jù)保護(Data Protection),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09