一直都很想做这个功能,但没有时间去整理这次客户要求一定要做,只能做了一下。
原理其实很简单,就是修改一下HTTP的响应头信息就可以了。
因为我原来设计的时候就把附件的处理做成一个用户组件,所以修改起来也很简单,只要增加一个下载的界面及修改用户组件的内容即可。
具体步骤:
1、把原来显示附件的链接地址统一改为AttachDownload.aspx?attachid=xxxx
2、添加一个AttachDownload.aspx页面,具体的代码如下:
需要注意的地方:
1、中文文件名最好用Server.UrlEncode进行处理一下。这样会安全一些,有一些IE客户端有把IE选项里的高级“总是以UTF-8发送URL钩上,如果没有钩上,不加这句话可能会出现乱码的情况,如果有钩上可能会正常。
2、.net发布的时候最好把bin下的dll删除掉再把新的复制上去。这次客户更新时候就是用覆盖的方式,造成没有及时更新,让我找了好久都没有找到问题所在。