Asp.net利用一般处理程序实现文件下载功能
首先有一个超文本标记语言页面,页面有一个链接,点击链接弹出文件下载/保存(类似迅雷下载链接)
!DOCTYPE html html health eta http-equiv=' Content-TYPe ' Content=' text/html;charset=utf-8'/title文件下载/title meta charset=' utf-8 '/head body!-该方式不行,1:如果访问的是类似文本等浏览器可以处理的文件,则是浏览器打开显示的方式,并不是文件下载;2:如果访问的是应用数据文件夹里的文件,由于。网的机制不允许访问应用数据文件夹资源,所以会报"请求筛选模块被配置为拒绝包含hiddenSegment节的统一资源定位器中的路径“-a href=' App _ Data/readme。txt ' rel='外部无跟随'下载readme.txt文件/a br/a href=' downloadfilehandler。ashx ' rel='外部无跟随'下载readme.txt文件/a/body/html一般处理程序的代码如下
使用系统IO;使用系统网络.命名空间钟web {///summary///DownloadFileHandler的摘要说明////摘要公共类DownloadFileHandler : IHttpHandler { public void process request(HttpContext context){ string file path=context .服务器。MapPath(' ~/App _ Data/readme。txt’);FileStream fs=新的FileStream(文件路径,文件模式。开放);字节[]字节=新字节[fs .长度];fs .读取(字节,0,字节。长度);fs .dispose();语境。响应。内容类型="应用程序/八位字节流";语境。响应。添加标题('内容处理','附件;文件名=自述文件。txt’);语境。响应。BinaryWrite(字节);语境。响应。刷新();//大文件下载的解决方案//上下文。响应。content type=' application/x-zip-compressed ';//上下文。响应。添加标题('内容处理','附件;文件名=z . zip ');//字符串文件名=服务器. MapPath(' ~/App _ Data/move。zip ');//上下文回应。TransmitFile(文件名);} public bool IsReuse { get { return false;} } }}点击第一个链接访问,显示如下:
点击第二个链接访问,下载文件:
由于我之前已经测试过一次,所以这次下载时命名为自述(1)。文本文件(文本文件)
版权声明:Asp.net利用一般处理程序实现文件下载功能是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。