jueyue 发表于 2013-9-16 22:52:49

jeecg 中文件上传问题

本帖最后由 jueyue 于 2013-9-16 23:02 编辑

首先我先介绍下问题:可能很多朋友都发现,根据jeecgdemo中上传文件,在IE下没有问题,但是在firefox或者chrome就没有办法了,但是demo却可以         解决这个问题,我们要先接触下flash在各个浏览器下的使用,ie下flash是在ie受控下使用的,所以可以和ie共享session,而firefox和chrome等flash都是重新new一个session这造成sessionID是新的,在jeecg中认证file:///C:/Users/jueyue/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg发现session中sessionInfo没有,这样firfox和chrome就无法完成上传了其实jeecg中为了上传问题作了两个方式:第一种就是这个excludeUrls 排除在外的在spring-mvc.xml中有这个excludeUrls 配置


file:///C:/Users/jueyue/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
第二个是一劳永逸的方法使用jsessionid 把sessionId强制设置为浏览器原来的,但是这个玩意好像被spring屏蔽了,查了google 没有找到解决办法,所以这个基本上就告别了,但是我们还是可以有更好的解决方法1.      这个实现比较简单,和excludeUrls类似增加这个参数excludeMenthods即使用上传的方法这样比较容易配置,比如saveImage,saveFile等配置几个就可以搞定了,不用没有url都写一次,比这jeecg的就很容易实现了,这个也是我的实现方法,统一命名,而且只允许post2.      这个还是使用jsessionid来实现,不过session.getSessionContext().getSession(sessionId);这个方法已经被java干掉了,所以我们只能自己写一个SessionManager了,http://jxdiamond.iteye.com/blog/1701733   这个写了,到处都有我就不写了
但是要在jsp页面中添加<input id='sessionUID' value='<%=session.getId()%>'type="hidden"/>这样才会加入到url中,这个可以看UploadTag源码

这个是ff的分析http://lync.in/session-trap-on-uploading-files-using-flash-in-firefox/http://pan.baidu.com/share/link?shareid=1489150320&uk=2936138743]百度盘



页: [1]
查看完整版本: jeecg 中文件上传问题