网页下载文件问题

文件下载所需要的注意事项。
1 Content-disposition
Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。(请注意,这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户询问保存位置。)
服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上attachment:

Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");

备注:这样浏览器会提示保存还是打开,即使选择打开,也会使用相关联的程序比如记事本打开,而不是IE直接打开了
1 客户端下载时文件名乱码问题
将文件名通过UrlPathEncode编码(通过UrlEncode编码不能解决文件名出现的空格问题,下载时空格会编译成加号,UrlEncode是将整个URL编码,而UrlPathEncode只是将URL中的Path部分编码)

        string encodeFileName = HttpUtility.UrlPathEncode("售楼管 理系统.rar");

        Context.Response.AddHeader("Content-Disposition",

         string.Format("attachment;filename=\"{0}\"",encodeFileName));

        Context.Response.WriteFile("售楼管理系统.rar"); 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容