默认
发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 求助中文附件在ie浏览器下下载报404
上传的附件包含中文时,他是以连接中的file_name参数命名,在ie浏览器下跳出项目报404,在360下会以跳出项目、再次刷新才能下载,并且名称都只剩下英文


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

360.png (30.67 KB, 下载次数: 1590)

360.png

2.png (27.11 KB, 下载次数: 1658)

2.png

1.png (27.3 KB, 下载次数: 1530)

1.png
推荐方案
评论 6
引用: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 (35.52 KB, 下载次数: 1557)

下载附件.png

编码.png (51.85 KB, 下载次数: 1541)

编码.png
引用:JackJiang 发表于 2019-08-30 17:17
你总结的很好。

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

我们是要求页面(对原来的页面布局做了调整,在ie浏览器上还是有一些兼容性问题尤其是低版本ie。现在都修好了,在ie9上还是可以的)和功能都要兼容ie9及以上版本和主流浏览器。但是里面用的上传功能不支持ie9暂时解决不掉,下载倒是可以了,其他功能正常。
引用:JackJiang 发表于 2019-09-02 14:12
上传功能因为要用于HTML5的上传能力,所以IE9下肯定是不能直接用的。
你可以去看看uploadify这个库,它 ...

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

返回顶部