请选择 进入手机版 | 继续访问电脑版

默认
发表评论 6
[已回复] 求助中文附件在ie浏览器下下载报404
上传的附件包含中文时,他是以连接中的file_name参数命名,在ie浏览器下跳出项目报404,在360下会以跳出项目、再次刷新才能下载,并且名称都只剩下英文


即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

360.png
2.png
1.png
推荐方案
评论 6
1)是IE几?
2)windows系统是什么版本?
3)服务端log有没有报什么异常?

现在找个ie测试都很困难,看版本,你这个ie可能连控制台都没有,调试都做不到。。。

实在不行就让客户下载高级一点的浏览器吧,ie太恶心了
签名: 昨晚睡太晚了,头疼,怎么救
引用:JackJiang 发表于 2019-08-30 13:54
1)是IE几?
2)windows系统是什么版本?
3)服务端log有没有报什么异常?


        问题一:在ie所有版本浏览器上,点击附件下载退出了项目报404

        原因:tomcat7.0.73及以上版本对URL有一个RFC 3986规范、RFC 7230是对前者的补充完善,也就是说在tomcat7.0.73及以后的版本在ie上都会存在这个问题:不满足规范的URL都会是错误的请求报404;(RFC

3986、RFC 7230规范具体内容可以百度)

        解决方法:最简单的使用tomcat7.0.73一下版本,百度上说在ie低版本还是存在这个问题,没试过;第二种就是前端对url进行编码,因为我是目前只有下载存在问题,所以对只对下载的接口中文入参进行编码encodeURI(file_name),这样就不会出现在ie下退出项目404报错;

        问题二:下载的附件名称中文都没了。问题一采用了编码,后台也要做编码处理,注意火狐要单独处理;

下载附件.png
编码.png
引用:IM、你好 发表于 2019-08-30 15:43
问题一:在ie所有版本浏览器上,点击附件下载退出了项目报404

        原因:tomcat7.0.73 ...

你总结的很好。

不过,在开发Rainbowchat-web时,除了windows的edge浏览器以后,几乎没有考虑过要在IE上跑(虽然理论上是只要支持HTML5的IE版本就能跑的好),一是确实很难找到IE,另一个IE确实是太垃圾了。

你运行的IE最低版本是多少?在你用的低版本IE上,HTML5界面有没有样式不兼容的问题?
签名: 昨晚睡太晚了,头疼,怎么救
引用:JackJiang 发表于 2019-08-30 17:17
你总结的很好。

不过,在开发Rainbowchat-web时,除了windows的edge浏览器以后,几乎没有考虑过要在IE ...

我们是要求页面(对原来的页面布局做了调整,在ie浏览器上还是有一些兼容性问题尤其是低版本ie。现在都修好了,在ie9上还是可以的)和功能都要兼容ie9及以上版本和主流浏览器。但是里面用的上传功能不支持ie9暂时解决不掉,下载倒是可以了,其他功能正常。
引用:IM、你好 发表于 2019-09-02 10:27
我们是要求页面(对原来的页面布局做了调整,在ie浏览器上还是有一些兼容性问题尤其是低版本ie。现在都修 ...

上传功能因为要用于HTML5的上传能力,所以IE9下肯定是不能直接用的。
你可以去看看uploadify这个库,它可以运行在IE9下(实际上,rainbowchat-web以前版本的文件上传用的就是这个,这玩意可以兼容到很低版本的IE浏览器,唯一的问题是它是基于flash技术,而flash技术目前已经过时,所以rainbowchat-web就用html5的版本来替换了它——即目前使用的是uploadify的姊妹工程uploadifive).

web端的文件上传技术,是很繁琐的,因为不支持HTML5的浏览器上默认是不支持局部刷新式的文件上传的(理论上可以用iframe技术实现,但跨域问题也是比较头疼),这方面的知识你可以系统地去学习一下。
签名: 昨晚睡太晚了,头疼,怎么救
引用:JackJiang 发表于 2019-09-02 14:12
上传功能因为要用于HTML5的上传能力,所以IE9下肯定是不能直接用的。
你可以去看看uploadify这个库,它 ...

好的,谢谢
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部