2016年1月17日,开通了博客园自己的博客

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

刚刚申请的时候还是非常急切地想知道,什么时候能收到管理员同意自己开通的通知,没想到刚一收到的时候,自己开始纠结第一篇文章写点什么。我想,不如来分享自己的一小段代码吧?

1varResponse =HttpContext.Current.Response;2Response.ContentType ="application/octet-stream";3Response.AddHeader("Content-Disposition","attachment; filename="+ FileName.Substring(0, FileName.Length -5) +".doc");4Response.WriteFile(backup_file);//backup_file 是之前定义好的文件名。

其实这个很简单,但是我研究了很久,自己思考的也挺乱的。

我先想到改HttpContext.Current.Response(以下简称Response)的ContentType属性为"application/msWord",然后使用Response的WriteFile()方法来把文件写入Http响应当中。结果失败了,操作完成后(首页一个按钮提交文件给此Handler.ashx,经过处理后形成一个word文档)浏览器下载了Handler.ashx文件,打开是乱码,从大小估计,应该这就是我所要的文件了,只不过文件名和拓展名都不是我想要的而已。

于是我在百度上找到了一篇文章,提到这个使用Response告知浏览器下载文件时,Response的ContentType应该是:"application/octet-stream",同样使用了Response.WriteFile()方法后,得到的就是我想要的文件了。

同时值得一提的是,上面我是用的backup_file变量,它的值实际上是文件在我的主机上的物理路径,把这个路径给了该方法,才成功实现了需求。

在tool.oschina.net/commons的HTTP ContentType查询中,我得到的结果是:

.*( 二进制流,不知道下载文件类型)

application/octet-stream

我所输出的其实是这样一个二进制流。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航