By MBPDLPayday Loans

把文件直接输出到客户端下载

很多情况下, IE的设置会自动将一些类型的文件在browser中直接打开. 最近的项目中遇到了这个问题, IE直接把.zip文件打开, 赤裸裸地呈现给用户.

03年的时候在学校工作室曾经用过一段代码:

onClick=”javascript:return openAlertHowToDL();”

但是这段代码在封装好的ComponentArt控件里面不work. 可能ComponenetArt做了特殊处理吧, 我转用链接到另外一个页面再重定向到.zip文件的方式, 但是这样.zip还是会被浏览器直接打开. 发现通过修改Append一个ResponsHeader可以解决这个问题, 代码记录如下.其中”attachment;filename=” + _desFileName 部分的_desFileName可以改用短名称,这样就不会出现.zip.zip[1]这样奇怪的IE缓存命名了.

Response.Clear();
Response.Buffer = true;
EnableViewState = false;

Response.AppendHeader(“Content-Disposition”, “attachment;filename=” + _desFileName);

Response.WriteFile(_relativePath + _desFileName);
Response.Flush();

Response.End();
Response.Close();

One Response to “把文件直接输出到客户端下载”
  1. 嗯~ 不错~呵呵……这个方法能解决什么问题呢????有点迷惘……嘿嘿…..俺是菜鸟一只~

Leave a Reply