博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
步步为营-70-asp.net简单练习(文件的上传和下载)
阅读量:5140 次
发布时间:2019-06-13

本文共 4656 字,大约阅读时间需要 15 分钟。

大文件的上传一般通过FTP协议,而一般小的文件可以通过http协议来完成

1 通过asp.net 完成图片的上传

1.1 创建html页面

  注意:1 method="post" ;2 enctype="multipart/form-data"; 3 <input type="file" />  

FileUpload.html

1.2 创建一般处理程序.ashx

  注意:1 创建文件保存路径

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileUpload 的摘要说明    ///     public class FileUpload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";            //01 获取文件            HttpPostedFile pf = context.Request.Files["imgUpLoad"];            //02 创建文件保存路径            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload/"+pf.FileName);            //03 保存文件            pf.SaveAs(savePath);            //04 显示上传的文件            context.Response.Write(" ");        }        public bool IsReusable        {            get            {                return false;            }        }    }}
FileUpload.ashx

2 上传文件格式的验证,假设规定只能上传,gif的图片

  我们可以在HTML通过jQuery来进行验证,也可以在.ashx中进行验证

2.1 修改ashx文件

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileUpload 的摘要说明    ///     public class FileUpload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";            //01 获取文件            HttpPostedFile pf = context.Request.Files["imgUpLoad"];            //01-01 获取文件后缀名            string extName = pf.FileName.Substring(pf.FileName.LastIndexOf('.'));            if (extName != ".gif" || extName != ".Gif")            {                context.Response.Write("请上传.gif图片");                return;            }            //02 创建文件保存路径            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload/"+pf.FileName);            //03 保存文件            pf.SaveAs(savePath);            //04 显示上传的文件            context.Response.Write(" ");        }        public bool IsReusable        {            get            {                return false;            }        }    }}
ashx

2.2 引入jQuery,修改HTML页面

html

3 如果文件只放在Upload文件夹下,随着时间的增长,文件势必会越来越多不利于寻找,可以根据日期建立相应文件夹

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileUpload 的摘要说明    ///     public class FileUpload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";            //01 获取文件            HttpPostedFile pf = context.Request.Files["imgUpLoad"];            //01-01 获取文件后缀名            string extName = pf.FileName.Substring(pf.FileName.LastIndexOf('.'));            if (extName != ".gif" && extName != ".GIF")            {                context.Response.Write("请上传.gif图片");                return;            }            //02 创建文件保存路径            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload\\");            //02-01 根据日期创建文件夹            DateTime dt = DateTime.Now;            savePath += dt.Year + "\\" + dt.Month + "\\" + dt.Day ;            if (!Directory.Exists(savePath))            {                //创建文件夹                Directory.CreateDirectory(savePath);            }            //02-02文 件名为当前时间                        savePath += "\\"+ dt.ToString().Replace(':','-')+".gif";            //03 保存文件            pf.SaveAs(savePath);            //04 显示上传的文件             context.Response.Write(" ");        }        public bool IsReusable        {            get            {                return false;            }        }    }}
ashx

4 文件下载

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileDownload 的摘要说明    ///     public class FileDownload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            string f = context.Request["f"];            context.Response.ContentType = "application/octet-stream";            context.Response.AddHeader("Content-Disposition","attachment;filename=\""+f+"\";");            context.Response.WriteFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,f));        }        public bool IsReusable        {            get            {                return false;            }        }    }}
ashx

转载于:https://www.cnblogs.com/YK2012/p/7009993.html

你可能感兴趣的文章
Showbo.Msg.alert
查看>>
iOS6 中 Smart App Banners介绍和使用(转自COCOACHINA.COM)
查看>>
Mahout初体验
查看>>
ORA-12545: Connect failed because target host or object does not exist
查看>>
python正则表达式
查看>>
accept函数
查看>>
linux signal 处理
查看>>
function calling convention
查看>>
2018-06-04表格结构+表格嵌套
查看>>
iOS学习笔记38-MJExtension使用
查看>>
第四章——64位软件逆向技术-基本语法(下 虚函数)
查看>>
JavaWeb项目中使用ajax上传文件
查看>>
谈谈使用echarts过程中踩过的坑
查看>>
idea mac快捷键
查看>>
非常优秀的Javascript(AJAX) 开发工具:Aptana
查看>>
php foreach 操作数组的代码
查看>>
【bzoj2286】 消耗战
查看>>
【hdu3555】 Bomb
查看>>
初识React
查看>>
DOS中如何删除文件夹
查看>>