博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
提炼游戏引擎系列:第一次迭代
查看>>
Django 学习
查看>>
Android的事件处理机制详解(二)-----基于监听的事件处理机制
查看>>
s5-12 RIP
查看>>
Linux-以指定用户运行redis
查看>>
Linux-socket的close和shutdown区别及应用场景
查看>>
初探Oracle全栈虚拟机---GraalVM
查看>>
移动端的点击滚动逻辑实现。
查看>>
xpath
查看>>
parted分区
查看>>
抛出错误
查看>>
Can't play local SWF file in Media Player
查看>>
图片标签img
查看>>
JavaScript语言中文参考手册.chm
查看>>
表哥的Access入门++以Excel视角快速学习数据库知识pdf
查看>>
day29 jq
查看>>
TC 配置插件
查看>>
关于异步reset
查看>>
索引优先队列的工作原理与简易实现
查看>>
SPOJ - DISUBSTR Distinct Substrings (后缀数组)
查看>>