asp.net中下载功能

//流方式下载
        protected void ButtonButtonDownload_Click(object sender, EventArgs e)
        {
            //string fileName = "mychart.png";//客户端保存的文件名
            //string filePath = Server.MapPath("/Report/mychart.png");//路径
            ////以字符流的形式下载文件
            //FileStream fs = new FileStream(filePath, FileMode.Open);
            //byte[] bytes = new byte[(int)fs.Length];
            //fs.Read(bytes, 0, bytes.Length);
            //fs.Close();
            //Response.ContentType = "application/octet-stream";
            ////通知浏览器下载文件而不是打开
            //Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
            //Response.BinaryWrite(bytes);
            //Response.Flush();
            //Response.End();
            string path = Server.MapPath("/Report/mychart.png");//路径
            if (File.Exists(path))
            {
                FileInfo DownloadFile = new FileInfo(path);
                Response.Clear();
                Response.ClearHeaders();
                Response.Buffer = false;
                Response.ContentType = "application/octet-stream";
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
                Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
                Response.WriteFile(DownloadFile.FullName);
                Response.Flush();
                Response.End();
            }

            //Response.ContentType = "application/octet-stream";
            //Response.AddHeader("Content-Disposition", "attachment;filename=mychart.png");
            //string filename = Server.MapPath("/Report/mychart.png");
            ////指定编码 防止中文文件名乱码
            //Response.HeaderEncoding = System.Text.Encoding.GetEncoding("gb2312");
            //Response.TransmitFile(filename);
        } 
时间: 2024-07-29 00:44:13

asp.net中下载功能的相关文章

ASP.NET中登录功能的简单逻辑设计

 ASP.NET中登录功能的简单逻辑设计                               概述                               逻辑设计                               1.接收参数                               2.判断参数合法性                               3.访问数据库                               4.保存Session     

asp.net中下载文件的问题

今天解决web的文件下载问题,下载的方法网上很多,不过我的下载有点特殊: 1.下载按钮在gridview中,是模板列的linkButton: 2.使用了ajax控件: 所以,在下载时总是报错,通过查找资料,解决方法如下: 1.先说ajax控件的问题: 如果下载按钮在ajax控件上,需要添加Triggers节点,如下: aspx: <asp:UpdatePanel ID="UpdatePanel3" runat="server"> <ContentT

webApp中下载功能的实现

前几天给原来的web页面app下载列表添加一个一键下载(点击按钮,页面app自己一个个下载)供压力测试. 开始使用循环列表加window.open(url),apk的资源浏览器会自动跳出下载页面,询问是否下载.后来手机上下了几个浏览器,window.open 被禁的还真厉害,除了QQ浏览器,其余都直接禁了或者让用户手动允许. 然后看到了一种方法,js动态创建iframe并赋src,这样浏览器加载资源发现资源是zip包也会默认跳出下载提示,不是我强迫的.但是,出现的问题是,有的浏览器跳出一个下载提

Asp.net实现下载功能的几种方法

//TransmitFile实现下载 protected void Button1_Click(object sender, EventArgs e) { Response.ContentType = "application/x-zip-compressed"; Response.AddHeader("Content-Disposition", "attachment;filename=z.zip"); string filename = Se

在ASP.NET中支持断点续传下载大文件(ZT)

IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag         客户端每次提交下载请求时,服务端都要添加这两个响应头,以保证客户端和服务端将此下载识别为可以断点续传的下载: Accept-Ranges:告知下载客户端这是一个可以恢复续传的下载,存放本次下载的开始字节位置.文件的字节大小: ETag:保存文件的唯一标识(我在用的文件名+文件最后修改时间,以便续传请求时对文件进行

ASP.NET MVC应用程序实现下载功能

上次Insus.NET有在MVC应用程序实现了上传文件的功能<MVC应用程序显示上传的图片> http://www.cnblogs.com/insus/p/3597543.html 有上传就有下载.本篇博文是把上传的文件以列表的形式显示View视图上,然后用户可以点击下载. 为了解更多的内容,建议你先看上链接一篇. 在MVC应用程序的Entity目录下,找到和打开FileLibraryEntity.cs,添加一个返回DataTable的方法: #1写一个GetUploadFileByPrima

Asp.net实现MVC处理文件的上传下载功能实例教程

这篇文章主要介绍了Asp.net实现MVC处理文件的上传下载功能,比较全面而系统的对Asp.net MVC的文件上传下载功能进行了深入分析,有很好的借鉴价值,需要的朋友可以参考下 上传于下载功能是程序设计中非常常见的一个功能,在ASP.NET程序开发中有着非常广泛的应用.本文就以实例形式来实现这一功能. 一.概述 如果你仅仅只有Asp.net Web Forms背景转而学习Asp.net MVC的,我想你的第一个经历或许是那些曾经让你的编程变得愉悦无比的服务端控件都驾鹤西去了.FileUploa

关于Asp.Net中的编程实现下载

经常在论坛看见有人求Asp.Net中编程实现下载的代码,有些还希望能断点续传什么的.其实问题的关键在于权限.B/S和C/S不仅仅是外观上的区别而已. 下载,顾名思义是客户端要下,所以载.你硬塞給人家那不叫下载,那其实是“从服务器‘上传’到客户端”. 有些人的想法是向客户端“写一个”你打算他下载的“文件”,在C/S结构中是没有问题的,因为C端来写.但是在Asp.net却是不行的,一定会弹出权限的错误,因为B/S结构中没有个C端給你,S端是不可能获得客户机硬盘的写权限的,要不还不是世界大乱了? 上传

ASP.NET中防止Access数据库下载

如何防止Access数据库下载是一个很老的话题了,网上的讨论也比较多.这里我们给出几种在ASP.NET下防止Access数据库被下载的方法. 我们这里假设Access数据库名字为 test.mdb. 1.把数据库放在WEB目录外 如你的网站目录是D:\www,你可以把数据库放到D:\data 这个文件夹里,然后修改网站程序中的数据库连接字串地址部分为:"D:\data\test.mdb" ,这样数据库可以正常调用,但是无法下载的,因为它不在网站目录里. 假设在web.config中配置