在我们的系统的编写过程中,应该有很多的时候需要客户下载文件.我第一次的做法(应该也是大部分人的做法吧?)是:

1            HttpResponse response = HttpContext.Current.Response;
2            string js = "<script language=javascript>window.open('{0}');</script>";
3            js = string.Format(js, url);
4            response.Write(js);
5

但是有个问题了,就是会被广告拦截软件直接拦截掉,另我非常的头痛,于是寻找更好的解决方法.看了用Response.BinaryWrite写文件流一文之后觉得确实可以如此,修改代码如下:

 1/**//// <summary>
 2        /// 下载文件
 3        /// </summary>
 4        /// <param name="filename">文件物理地址</param>        
 5
 6protected void DownloadFile(string filename)
 7        {
 8            string saveFileName = "test.xls";
 9            int intStart = filename.LastIndexOf("\\")+1;
10            saveFileName = filename.Substring(intStart,filename.Length-intStart);
11            FileStream MyFileStream; 
12            long FileSize; 
13                
14            MyFileStream = new FileStream(filename,FileMode.Open); 
15            FileSize = MyFileStream.Length; 
16                    
17            byte[] Buffer = new byte[(int)FileSize]; 
18            MyFileStream.Read(Buffer, 0, (int)FileSize); 
19            MyFileStream.Close(); 
20                
21            Response.AddHeader("Content-Disposition", "attachment;filename="+saveFileName);
22            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
23            Response.ContentType = "application/vnd.ms-excel"; 
24                
25            Response.BinaryWrite(Buffer); 
26            Response.Flush(); 
27            Response.Close(); 
28            Response.End();
29
30        }
31

但是有个严重的问题,就是文件格式。这样只是将流输出,且无法正确识别格式。还好,能人层出不穷,  柚子Nan 提出了能否不考虑文件的类型,直接把文件显示到浏览器(Response) 的想法正好切中我的要害所在,于是急忙研究了柚子Nan的想法,修改出最后代码:

 1        /**//// <summary>
 2        /// 下载文件
 3        /// </summary>
 4        /// <param name="filename">文件物理地址</param>
 5        protected void DownloadFile(string filename)
 6        {
 7            string saveFileName = "test.xls";
 8            int intStart = filename.LastIndexOf("\\")+1;
 9            saveFileName = filename.Substring(intStart,filename.Length-intStart);
10
11            Response.Clear();
12            Response.Charset = "utf-8";
13            Response.Buffer= true;
14            this.EnableViewState = false;
15            Response.ContentEncoding = System.Text.Encoding.UTF8;
16
17            Response.AppendHeader("Content-Disposition","attachment;filename=" + saveFileName); 
18            Response.WriteFile(filename); 
19            Response.Flush();
20            Response.Close();
21
22            Response.End();
23        }

文件的ContentType类型 小全

#region 
            ".*"="application/octet-stream"
            ".001"="application/x-001"
            ".301"="application/x-301"
            ".323"="text/h323"
            ".906"="application/x-906"
            ".907"="drawing/907"
            ".a11"="application/x-a11"
            ".acp"="audio/x-mei-aac"
            ".ai"="application/postscript"
            ".aif"="audio/aiff"
            ".aifc"="audio/aiff"
            ".aiff"="audio/aiff"
            ".anv"="application/x-anv"
            ".asa"="text/asa"
            ".asf"="video/x-ms-asf"
            ".asp"="text/asp"
            ".asx"="video/x-ms-asf"
            ".au"="audio/basic"
            ".avi"="video/avi"
            ".awf"="application/vnd.adobe.workflow"
            ".biz"="text/xml"
            ".bmp"="application/x-bmp"
            ".bot"="application/x-bot"
            ".c4t"="application/x-c4t"
            ".c90"="application/x-c90"
            ".cal"="application/x-cals"
            ".cat"="application/vnd.ms-pki.seccat"
            ".cdf"="application/x-netcdf"
            ".cdr"="application/x-cdr"
            ".cel"="application/x-cel"
            ".cer"="application/x-x509-ca-cert"
            ".cg4"="application/x-g4"
            ".cgm"="application/x-cgm"
            ".cit"="application/x-cit"
            ".class"="java/*"
            ".cml"="text/xml"
            ".cmp"="application/x-cmp"
            ".cmx"="application/x-cmx"
            ".cot"="application/x-cot"
            ".crl"="application/pkix-crl"
            ".crt"="application/x-x509-ca-cert"
            ".csi"="application/x-csi"
            ".css"="text/css"
            ".cut"="application/x-cut"
            ".dbf"="application/x-dbf"
            ".dbm"="application/x-dbm"
            ".dbx"="application/x-dbx"
            ".dcd"="text/xml"
            ".dcx"="application/x-dcx"
            ".der"="application/x-x509-ca-cert"
            ".dgn"="application/x-dgn"
            ".dib"="application/x-dib"
            ".dll"="application/x-msdownload"
            ".doc"="application/msword"
            ".dot"="application/msword"
            ".drw"="application/x-drw"
            ".dtd"="text/xml"
            ".dwf"="Model/vnd.dwf"
            ".dwf"="application/x-dwf"
            ".dwg"="application/x-dwg"
            ".dxb"="application/x-dxb"
            ".dxf"="application/x-dxf"
            ".edn"="application/vnd.adobe.edn"
            ".emf"="application/x-emf"
            ".eml"="message/rfc822"
            ".ent"="text/xml"
            ".epi"="application/x-epi"
            ".eps"="application/x-ps"
            ".eps"="application/postscript"
            ".etd"="application/x-ebx"
            ".exe"="application/x-msdownload"
            ".fax"="image/fax"
            ".fdf"="application/vnd.fdf"
            ".fif"="application/fractals"
            ".fo"="text/xml"
            ".frm"="application/x-frm"
            ".g4"="application/x-g4"
            ".gbr"="application/x-gbr"
            ".gcd"="application/x-gcd"
            ".gif"="image/gif"
            ".gl2"="application/x-gl2"
            ".gp4"="application/x-gp4"
            ".hgl"="application/x-hgl"
            ".hmr"="application/x-hmr"
            ".hpg"="application/x-hpgl"
            ".hpl"="application/x-hpl"
            ".hqx"="application/mac-binhex40"
            ".hrf"="application/x-hrf"
            ".hta"="application/hta"
            ".htc"="text/x-component"
            ".htm"="text/html"
            ".html"="text/html"
            ".htt"="text/webviewhtml"
            ".htx"="text/html"
            ".icb"="application/x-icb"
            ".ico"="image/x-icon"
            ".ico"="application/x-ico"
            ".iff"="application/x-iff"
            ".ig4"="application/x-g4"
            ".igs"="application/x-igs"
            ".iii"="application/x-iphone"
            ".img"="application/x-img"
            ".ins"="application/x-internet-signup"
            ".isp"="application/x-internet-signup"
            ".IVF"="video/x-ivf"
            ".java"="java/*"
            ".jfif"="image/jpeg"
            ".jpe"="image/jpeg"
            ".jpe"="application/x-jpe"
            ".jpeg"="image/jpeg"
            ".jpg"="image/jpeg"
            ".jpg"="application/x-jpg"
            ".js"="application/x-javascript"
            ".jsp"="text/html"
            ".la1"="audio/x-liquid-file"
            ".lar"="application/x-laplayer-reg"
            ".latex"="application/x-latex"
            ".lavs"="audio/x-liquid-secure"
            ".lbm"="application/x-lbm"
            ".lmsff"="audio/x-la-lms"
            ".ls"="application/x-javascript"
            ".ltr"="application/x-ltr"
            ".m1v"="video/x-mpeg"
            ".m2v"="video/x-mpeg"
            ".m3u"="audio/mpegurl"
            ".m4e"="video/mpeg4"
            ".mac"="application/x-mac"
            ".man"="application/x-troff-man"
            ".math"="text/xml"
            ".mdb"="application/msaccess"
            ".mdb"="application/x-mdb"
            ".mfp"="application/x-shockwave-flash"
            ".mht"="message/rfc822"
            ".mhtml"="message/rfc822"
            ".mi"="application/x-mi"
            ".mid"="audio/mid"
            ".midi"="audio/mid"
            ".mil"="application/x-mil"
            ".mml"="text/xml"
            ".mnd"="audio/x-musicnet-download"
            ".mns"="audio/x-musicnet-stream"
            ".mocha"="application/x-javascript"
            ".movie"="video/x-sgi-movie"
            ".mp1"="audio/mp1"
            ".mp2"="audio/mp2"
            ".mp2v"="video/mpeg"
            ".mp3"="audio/mp3"
            ".mp4"="video/mpeg4"
            ".mpa"="video/x-mpg"
            ".mpd"="application/vnd.ms-project"
            ".mpe"="video/x-mpeg"
            ".mpeg"="video/mpg"
            ".mpg"="video/mpg"
            ".mpga"="audio/rn-mpeg"
            ".mpp"="application/vnd.ms-project"
            ".mps"="video/x-mpeg"
            ".mpt"="application/vnd.ms-project"
            ".mpv"="video/mpg"
            ".mpv2"="video/mpeg"
            ".mpw"="application/vnd.ms-project"
            ".mpx"="application/vnd.ms-project"
            ".mtx"="text/xml"
            ".mxp"="application/x-mmxp"
            ".net"="image/pnetvue"
            ".nrf"="application/x-nrf"
            ".nws"="message/rfc822"
            ".odc"="text/x-ms-odc"
            ".out"="application/x-out"
            ".p10"="application/pkcs10"
            ".p12"="application/x-pkcs12"
            ".p7b"="application/x-pkcs7-certificates"
            ".p7c"="application/pkcs7-mime"
            ".p7m"="application/pkcs7-mime"
            ".p7r"="application/x-pkcs7-certreqresp"
            ".p7s"="application/pkcs7-signature"
            ".pc5"="application/x-pc5"
            ".pci"="application/x-pci"
            ".pcl"="application/x-pcl"
            ".pcx"="application/x-pcx"
            ".pdf"="application/pdf"
            ".pdf"="application/pdf"
            ".pdx"="application/vnd.adobe.pdx"
            ".pfx"="application/x-pkcs12"
            ".pgl"="application/x-pgl"
            ".pic"="application/x-pic"
            ".pko"="application/vnd.ms-pki.pko"
            ".pl"="application/x-perl"
            ".plg"="text/html"
            ".pls"="audio/scpls"
            ".plt"="application/x-plt"
            ".png"="image/png"
            ".png"="application/x-png"
            ".pot"="application/vnd.ms-powerpoint"
            ".ppa"="application/vnd.ms-powerpoint"
            ".ppm"="application/x-ppm"
            ".pps"="application/vnd.ms-powerpoint"
            ".ppt"="application/vnd.ms-powerpoint"
            ".ppt"="application/x-ppt"
            ".pr"="application/x-pr"
            ".prf"="application/pics-rules"
            ".prn"="application/x-prn"
            ".prt"="application/x-prt"
            ".ps"="application/x-ps"
            ".ps"="application/postscript"
            ".ptn"="application/x-ptn"
            ".pwz"="application/vnd.ms-powerpoint"
            ".r3t"="text/vnd.rn-realtext3d"
            ".ra"="audio/vnd.rn-realaudio"
            ".ram"="audio/x-pn-realaudio"
            ".ras"="application/x-ras"
            ".rat"="application/rat-file"
            ".rdf"="text/xml"
            ".rec"="application/vnd.rn-recording"
            ".red"="application/x-red"
            ".rgb"="application/x-rgb"
            ".rjs"="application/vnd.rn-realsystem-rjs"
            ".rjt"="application/vnd.rn-realsystem-rjt"
            ".rlc"="application/x-rlc"
            ".rle"="application/x-rle"
            ".rm"="application/vnd.rn-realmedia"
            ".rmf"="application/vnd.adobe.rmf"
            ".rmi"="audio/mid"
            ".rmj"="application/vnd.rn-realsystem-rmj"
            ".rmm"="audio/x-pn-realaudio"
            ".rmp"="application/vnd.rn-rn_music_package"
            ".rms"="application/vnd.rn-realmedia-secure"
            ".rmvb"="application/vnd.rn-realmedia-vbr"
            ".rmx"="application/vnd.rn-realsystem-rmx"
            ".rnx"="application/vnd.rn-realplayer"
            ".rp"="image/vnd.rn-realpix"
            ".rpm"="audio/x-pn-realaudio-plugin"
            ".rsml"="application/vnd.rn-rsml"
            ".rt"="text/vnd.rn-realtext"
            ".rtf"="application/msword"
            ".rtf"="application/x-rtf"
            ".rv"="video/vnd.rn-realvideo"
            ".sam"="application/x-sam"
            ".sat"="application/x-sat"
            ".sdp"="application/sdp"
            ".sdw"="application/x-sdw"
            ".sit"="application/x-stuffit"
            ".slb"="application/x-slb"
            ".sld"="application/x-sld"
            ".slk"="drawing/x-slk"
            ".smi"="application/smil"
            ".smil"="application/smil"
            ".smk"="application/x-smk"
            ".snd"="audio/basic"
            ".sol"="text/plain"
            ".sor"="text/plain"
            ".spc"="application/x-pkcs7-certificates"
            ".spl"="application/futuresplash"
            ".spp"="text/xml"
            ".ssm"="application/streamingmedia"
            ".sst"="application/vnd.ms-pki.certstore"
            ".stl"="application/vnd.ms-pki.stl"
            ".stm"="text/html"
            ".sty"="application/x-sty"
            ".svg"="text/xml"
            ".swf"="application/x-shockwave-flash"
            ".tdf"="application/x-tdf"
            ".tg4"="application/x-tg4"
            ".tga"="application/x-tga"
            ".tif"="image/tiff"
            ".tif"="application/x-tif"
            ".tiff"="image/tiff"
            ".tld"="text/xml"
            ".top"="drawing/x-top"
            ".torrent"="application/x-bittorrent"
            ".tsd"="text/xml"
            ".txt"="text/plain"
            ".uin"="application/x-icq"
            ".uls"="text/iuls"
            ".vcf"="text/x-vcard"
            ".vda"="application/x-vda"
            ".vdx"="application/vnd.visio"
            ".vml"="text/xml"
            ".vpg"="application/x-vpeg005"
            ".vsd"="application/vnd.visio"
            ".vsd"="application/x-vsd"
            ".vss"="application/vnd.visio"
            ".vst"="application/vnd.visio"
            ".vst"="application/x-vst"
            ".vsw"="application/vnd.visio"
            ".vsx"="application/vnd.visio"
            ".vtx"="application/vnd.visio"
            ".vxml"="text/xml"
            ".wav"="audio/wav"
            ".wax"="audio/x-ms-wax"
            ".wb1"="application/x-wb1"
            ".wb2"="application/x-wb2"
            ".wb3"="application/x-wb3"
            ".wbmp"="image/vnd.wap.wbmp"
            ".wiz"="application/msword"
            ".wk3"="application/x-wk3"
            ".wk4"="application/x-wk4"
            ".wkq"="application/x-wkq"
            ".wks"="application/x-wks"
            ".wm"="video/x-ms-wm"
            ".wma"="audio/x-ms-wma"
            ".wmd"="application/x-ms-wmd"
            ".wmf"="application/x-wmf"
            ".wml"="text/vnd.wap.wml"
            ".wmv"="video/x-ms-wmv"
            ".wmx"="video/x-ms-wmx"
            ".wmz"="application/x-ms-wmz"
            ".wp6"="application/x-wp6"
            ".wpd"="application/x-wpd"
            ".wpg"="application/x-wpg"
            ".wpl"="application/vnd.ms-wpl"
            ".wq1"="application/x-wq1"
            ".wr1"="application/x-wr1"
            ".wri"="application/x-wri"
            ".wrk"="application/x-wrk"
            ".ws"="application/x-ws"
            ".ws2"="application/x-ws"
            ".wsc"="text/scriptlet"
            ".wsdl"="text/xml"
            ".wvx"="video/x-ms-wvx"
            ".xdp"="application/vnd.adobe.xdp"
            ".xdr"="text/xml"
            ".xfd"="application/vnd.adobe.xfd"
            ".xfdf"="application/vnd.adobe.xfdf"
            ".xhtml"="text/html"
            ".xls"="application/vnd.ms-excel"
            ".xls"="application/x-xls"
            ".xlw"="application/x-xlw"
            ".xml"="text/xml"
            ".xpl"="audio/scpls"
            ".xq"="text/xml"
            ".xql"="text/xml"
            ".xquery"="text/xml"
            ".xsd"="text/xml"
            ".xsl"="text/xml"
            ".xslt"="text/xml"
            ".xwd"="application/x-xwd"
            ".x_b"="application/x-x_b"
            ".x_t"="application/x-x_t" 
#endregion

转载于:https://www.cnblogs.com/zsy/archive/2005/12/24/303740.html

Asp.net直接保存文件到客户端相关推荐

  1. ASP.NET—016:ASP.NET中保存文件对话框

    本想在asp.net中使用savediallog保存文件,结果提示:当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效操作. 在ASP.NET中使用如下方式,保存文 ...

  2. Asp.net直接保存(下载)文件到客户端

    在我们的系统的编写过程中,应该有很多的时候需要客户下载文件.我第一次的做法(应该也是大部分人的做法吧?)是:   1 HttpResponse response = HttpContext.Curre ...

  3. FileSaver.js 客户端保存文件的解决方案

    介绍: FileSaver.js是一个HTML5 saveAs()FileSaver实现,它是在客户端保存文件的解决方案,非常适合在客户端生成文件的web应用程序! 效果: 代码: <!DOCT ...

  4. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  5. ASP.NET2.0打通文件图片处理任督二脉【月儿原创】

    ASP.NET2.0打通文件图片处理任督二脉 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.4.1 1.最简单的单文件上传(没 ...

  6. asp.net 对xml文件的读写,添加,修改,删除操作

    asp.net 对xml文件的读写,添加,修改,删除操作 下面有代码调试正确 using System; using System.Collections; using System.Componen ...

  7. 在ASP.NET中操作文件的例子

    利用SYSTEM.IO 名空间中的STREAMWRITER,STREAMREADER及FILE类,完成文件读.写.删除的操作.  ----------------------------------- ...

  8. 转:ASP.NET状态保存方法

    ASP.NET状态保存分为客户端保存和服务器端保存两种: 使用客户端选项存储页信息而不使用服务器资源的这些选项往往具有最低的安全性但具有最快 的服务器性能,因为对服务器资源的要求是适度的.但是,由于必 ...

  9. [转]Asp.net 将js文件打包进dll 方法

    Asp.net 将js文件打包进dll 方法 注:本文基于.NET 2.0 和 VS2005 我们在编写 Server Control 的时候难免要用到一些客户端脚本(javascript),如何把脚 ...

  10. Asp.net生成Excel文件并下载(解决使用迅雷下载页面而不是文件的问题)

    这里采用的是在服务端先生成Excel文件,然后利用文件地址下载的方法. 先试用Response.WriteFile的方法: FileInfo fi = new FileInfo(excelFile); ...

最新文章

  1. Mysql 755和750权限,chmod 755 究竟是什么鬼?
  2. ASP.NET中文件上传下载方法集合
  3. php 注册回调函数,PHP回调函数
  4. CreateService / SC 创建自启动服务
  5. python优雅代码大全_代码这样写更优雅(Python版)
  6. SOA和微服务之间的区别
  7. C语言2020年作业,2020年c语言上机报告范文【四篇】
  8. Java NIO学习篇之NIO的基本认识
  9. python查看pypi第三方库可安装的全部版本
  10. UNIX环境高级编程习题——第三章
  11. python — pip 下载速度慢解决方法(含Anaconda、spyder 下载包的方法)
  12. java 连接163邮箱_java调用163邮箱发送邮件
  13. 如何优雅的停止一个线程?
  14. 鹏鹏:You have 14 unapplied migration(s). Your project may not work properly。。。。报错!
  15. python爬取百度百科获取中国高校信息
  16. 有哪些比较好用的录音软件【精品合集】
  17. SaltStack常用模块——file
  18. 搭建pxe远程安装服务器
  19. Apollo6.0代码Lattice算法详解——Part4:计算障碍物ST/SL图
  20. Excel批量自动处理工具(写公式、查找提取、替换、批量清除、合并、表格式转换....)

热门文章

  1. headerutf php_php header设置编码的方法
  2. php编写 密码检查,php-检查旧密码和新密码的规则
  3. 添加key_所写为方便日后查阅(添加SSHkey)
  4. 阿里云ddns解决动态IP问题
  5. C#开发和调用Web Service
  6. Matter-JS Composite.add 符合材料添加约束
  7. CSS Margin 边距详解、CSS 实现水平垂直居中、overflow 兼容 Safari 浏览器
  8. 【转载】【SQL】Sql Server Management Studio 18 打开闪退问题
  9. C#复习笔记(3)--C#2:解决C#1的问题(泛型)
  10. [No0000DD]C# StringEx 扩展字符串类 类封装