仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 480|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之怎样在 ASP.NET 中下载文件

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-16 22:28:31 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
效率会有不少的变化。而实际上java是基于堆栈机器来设计,这和我们常见的基于寄存器的本地机器是差异比较大的。总体来说,这是一种虚拟机的设计思路。这是笔者常被问到的一个成绩,怎样经由过程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:WindowsSystem32...)
  这时候候,我们就得接纳分歧的体例:
  SharedFunctionDownloadFile(ByValWebFormAsSystem.Web.UI.Page,ByValFileNameWhenUserDownloadAsString,ByValFileBodyAsString)
  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()
  EndFunction

  下面这段代码是下载一个静态发生的文本文件,若这个文件已存在于服务器真个实体路径,则能够经由过程上面的函数:
  SharedSubDownloadFile(ByValWebFormAsSystem.Web.UI.Page,ByValFileNameWhenUserDownloadAsString,ByValFilePathAsString)
  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()
  EndSub

  下面这两个下载文件的的函数,应可办理年夜多半开辟职员在ASP.NET傍边的文件下载成绩。

另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。
谁可相欹 该用户已被删除
7#
发表于 2015-3-22 01:24:04 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-3-15 13:58:46 | 只看该作者
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
admin 该用户已被删除
5#
发表于 2015-3-7 20:27:12 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
山那边是海 该用户已被删除
地板
发表于 2015-2-25 11:04:24 | 只看该作者
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
蒙在股里 该用户已被删除
板凳
发表于 2015-2-2 22:05:11 来自手机 | 只看该作者
主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。
活着的死人 该用户已被删除
沙发
发表于 2015-1-25 12:29:27 来自手机 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
简单生活 该用户已被删除
楼主
发表于 2015-1-19 14:00:55 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 05:13

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表