All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
2003 下 IIS+PHP+MySQL+Zend Optimize_[PHP教程]
如何在.NET框架下创建Access数据库和表?_[Asp.Net教程]
C#,WinForm中DataGrid列设置
C#图像放大问题解决方法_.net资料_编程技术
用定制的PHP应用程序来获取Web服务器的状态信息_[PHP教程]
PHP高亮显示,XML,源代码_php资料_编程技术
asp.net,2.0,与1.1,在生成的前台页面内容方面的一点不同_[Asp.Net教程]
如何使用SQL Server数据库查询累计值_[SQL Server教程]
Windows XP&2003 IIS安装PHP&MySQL环境完全教程_[PHP教程]
如何找出相同月日记录_[SQL Server教程]
Reading number is top 10 pictures
赵惟依写真2
Fierce! China's special forces training the devil1
BingBingFan apple dew point photo gallery5
Summer is most suitable for young people to travel in China7
一千块钱如何创业
这年头,找个靠谱的妹子太难了
如果没有好报,为什么要做好人?
Female model behind the bitterness, often being overcharged4
各种囧况!玩游戏最不喜欢出现的十件事
七步解决性冷淡
Download software ranking
jBuilder2006
天龙八部最新服务端
Eclipse-CALMSANNY (second edition)
Tram sex maniac 2 (H) rar bag6
软件工程思想
DreamWeaver8
网络管理员第三版
终极变速大师Speeder3.26
The Bermuda triangle2
Tram sex maniac 2 (H) rar bag8
delv published in(发表于) 2014/1/27 6:51:52 Edit(编辑)
解析:如何在,ASP.NET,中下载文件_[Asp.Net教程]

解析:如何在,ASP.NET,中下载文件_[Asp.Net教程]

解析:如何在 ASP.NET 中下载文件_[Asp.Net教程]

  这是笔者常被问到的一个问题,如何通过ASP.NET来下载文件,这个问题可大可小,我们先从小的开始。当我们要让用户下载一个文件,最简单的方式是通过Response.Redirect指令:



以下是引用片段:
  Response.Redirect("test.doc")


  您可以把上面这行指令放在Button的Click事件当中,当用户点击按钮之后,网页就会被转址到该word档,造成下载的效果。


  但是这样的下载有几个问题:


  1. 无法下载不存在的文件:例如,我们若是想把程序动态(临时)产生的文字,当作一个文件下载的时候(也就是该文件其实原先并不是真的存在,而是动态产生的),就无法下载。


  2. 无法下载存储于数据库中的文件:这是类似的问题,该文件并没有真的存在,只是被存放在数据库中的某个位置(某笔记录中的某个栏位)的时候,就无法下载。


  3. 无法下载不存在于Web文件夹中的文件:文件确实存在,但该文件夹并不是可以分享出来的Web文件夹,例如,该文件的位置在C:\winnt,您总不会想要把该文件夹当作Web文件夹吧?这时候,由于您无法使用Redirect指向该位置,所以无法下载。


  4. 下载文件后,原本的页面将会消失。


  典型的状况是,我们要让用户下载一个.txt文件,或是.csv格式的Excel文件,但是...


  1. 这个文件可能是通过ASP.NET程序动态产生的,而不是确实存在于Server端的文件;


  2. 或是它虽然存在于伺服器端的某个实体位置,但我们并不想暴露这个位置(如果这个位置公开,很可能没有权限的用户也可以在网址栏上输入URL直接取得!!!)


  3. 或是这个位置并不在网站虚拟路径所在的文件夹中。(例如C:\Windows\System32...)


  这时候,我们就得采用不同的方式:



以下是引用片段:
  Shared Function DownloadFile(ByVal WebForm As System.Web.UI.Page, ByVal FileNameWhenUserDownload As String, ByVal FileBody As String)
  WebForm.Response.ClearHeaders()
  WebForm.Response.Clear()
  WebForm.Response.Expires = 0
  WebForm.Response.Buffer = True
  WebForm.Response.AddHeader("Accept-Language", "zh-tw")
  '文件名称
  WebForm.Response.AddHeader("content-disposition", "attachment; filename=" & Chr(34) & System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8) & Chr(34))
  WebForm.Response.ContentType = "Application/octet-stream"
  '文件内容
  WebForm.Response.Write(FileBody)
  WebForm.Response.End()
  End Function


  上面这段代码是下载一个动态产生的文本文件,若这个文件已经存在于服务器端的实体路径,则可以通过下面的函数:



以下是引用片段:
  Shared Sub DownloadFile(ByVal WebForm As System.Web.UI.Page, ByVal FileNameWhenUserDownload As String, ByVal FilePath As String)
  WebForm.Response.ClearHeaders()
  WebForm.Response.Clear()
  WebForm.Response.Expires = 0
  WebForm.Response.Buffer = True
  WebForm.Response.AddHeader("Accept-Language", "zh-tw")
  '文件名称
  WebForm.Response.AddHeader("content-disposition", "attachment; filename=" & Chr(34) & System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8) & Chr(34))
  WebForm.Response.ContentType = "Application/octet-stream"
  '文件内容
  WebForm.Response.Write(System.IO.File.ReadAllBytes(FilePath))
  WebForm.Response.End()
  End Sub


  上面这两个下载文件的的函数,应可解决大多数开发人员在ASP.NET当中的文件下载问题。

来源:CSDN







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.