asp.net利用ashx文件实现文件的上传功能
2019-12-02 18:11
1356 查看
原来以为文件上传是一个比较简单的功能,结果搞了一个晚上才搞定~这里主要介绍两种方法实现。
方法一: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利用一般处理程序实现文件下载功能
- 利用uploadify+asp.net 实现大文件批量上传。
- asp.net core实现文件上传功能
- ASP.NET实现大文件上传功能
- Asp.Net下的文件上传功能实现
- Flex2.0实现文件上传功能(服务器为ASP.NET)
- Asp.net实现MVC处理文件的上传下载功能实例教程
- 拥有网页版小U盘 ASP.NET实现文件上传与下载功能
- 利用ASP技术实现文件直接上传功能
- ASP.NET实现大文件上传功能
- 文件上传系列《3-3》:asp.net利用webuploader实现超大文件分片上传、断点续传
- asp.net core实现文件上传功能
- 用ASP.NET的FileUpload控件实现带对话框的FTP文件上传功能
- 在asp.net利用jquery.MultiFile实现多文件上传(转载)
- asp.net(c#)实现文件上传功能
- 利用commons-net-3.2.jar实现ftp文件上传功能
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 拥有网页版小U盘 ASP.NET实现文件上传与下载功能
- ASP .net 实现文件上传 下载功能