使用文档控件读流打开文档,只在IE下提示文件存取错误,火狐谷歌正常,并且通过浏览器地址栏可以下载到文件


创建时间:03/17/2017 11:16:03 AM 修改时间: 11/13/2019 03:41:16 PM
文档分类:BS开发-常见问题, BS开发-开发技巧
相关文档:本文档没有相关文档
问题表现:使用文档控件读流打开文档,只在IE下提示文件存取错误,火狐谷歌正常,并且通过浏览器地址栏可以下载到文件

可能的问题原因以及排查方式:
读流代码写的不标准,返回的filename是含有斜杠等的特殊符号,导致文档控件无法获取到文件;

通过浏览器的开发人员选项进行调试,在网络模块可看到打开文档时的请求响应头内容如:


这里可能会有疑惑:为什么将打开方法里 传递的url放到浏览器地址栏可以正常下载到这个文档? 为什么谷歌火狐下没有问题?
这是由于IE下直接通过浏览器地址栏下载的方式是会经过浏览器本身处理解析,所以自然是可以的;
而谷歌火狐虽然机制与IE不同,但是在这里浏览器本身也是做了解析处理的。


结论:使用文档控件打开文档时,如果后台是读流方式,那么代码里的attachment; filename="xxx" 里的filename一定不能含有斜杠等的特殊字符