JAVA 文件上传后台判断浏览器的类型以及JDK1.5和1.6处理的不同
2012-11-05 14:34
821 查看
以前或多或少的遇到遇到浏览器不兼容的问题,但是大多数都是在前端,没想到这一次居然发生在后台。
当做文件的上传时,传到后台的文件的名字是根据浏览器不同,而有所差别的,在谷歌的Chrome和IE中,传到后台的时候的,文件的名字会附上你本地的路径,而FireFox则不会(直接是文件的名字),当然如果你直接忽略这个文件的名字或者不用到这个文件的名字也就无所谓。但是,当你要用到这个文件的文件名作为你上传文件的名字的一部分的时候,例如:fileName = 随机数+文件名。这个时候在Chrome中有你上传文件的本地路径,如:C:/hello.xls,那么你保存的时候,就会有“:“,“/”等这些特殊字符,会报错,因此,再次需要判断浏览器的类型,来进行处理。
String userAgent = request.getHeader("user-agent"); //如果是IE或者Chrome,则文件的文件名极为上传文件最后一个名字 if(userAgent.indexOf("MSIE")!=-1 || userAgent.indexOf("Chrome")!=-1){ oFileName = originalfile[originalfile.length-1] }else { oFileName = params.originalfile }
另外,在JDK1.5和1.6中,对于 def path = request.getRealPath("/") 得到的path也不尽相同,在1.5中path后面没有”/“,而在1.6中后面则有,为了解决这个问题,用下面方法即可
def path = request.getRealPath("/") if(!path.endsWith("/")){ path = path + "/" }
最后附上从浏览器得到的 user-agent :
iPad User Agent String
Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10
Google Android user agent strings
Mozilla/5.0 (Linux; U; Android 0.5; en-us) AppleWebKit/522+ (KHTML, like Gecko) Safari/419.3
Google Nexus
Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.1; en-us; Nexus One Build/ERD62) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
Dell
Mozilla/5.0 (Linux; U; Android 1.6; en-gb; Dell Streak Build/Donut AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/ 525.20.1
HTC
Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; ADR6300 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
Mozilla/5.0 (Linux; U; Android 1.6; en-us; WOWMobile myTouch 3G Build/unknown) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
Mozilla/5.0 (Linux; U; Android 2.2; nl-nl; Desire_A8181 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
HTC_Dream Mozilla/5.0 (Linux; U; Android 1.5; en-ca; Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
Motorola
Mozilla/5.0 (Linux; U; Android 2.2; en-us; DROID2 GLOBAL Build/S273) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13
Mozilla/5.0 (Linux; U; Android 2.2; en-us; Droid Build/FRG22D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.2; en-us; DROID2 GLOBAL Build/S273) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; DROIDX Build/VZW) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 480X854 motorola DROIDX
Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; Droid Build/ESE81) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/ 530.17
Samsung
Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.2; en-ca; SGH-T959D Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.0.1; en-us; Droid Build/ESD56) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
Sony
Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; E10i Build/2.0.2.A.0.24) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
my PC chorme
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11
Internet Explorer 7 (Windows Vista) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Internet Explorer 6 (Windows XP) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Internet Explorer 5.5 (Windows 2000) Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0 )
Internet Explorer 5.5 (Windows ME) Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)
Firefox 3.0 (Windows XP) Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Firefox 2.0 (Windows XP) Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
相关文章推荐
- 通过input上传图片,判断不同浏览器及图片类型和大小的js代码
- java后台调用JS代码判断浏览器版本是否低于IE9,低版本跳转不同页面
- java上传文件以流方式判断类型
- Webx框架Velocity上传文件控件不同浏览器显示兼容处理
- 不同浏览器对上传的zip文件格式的mime类型解释
- java判断上传文件类型是否为图片
- java上传文件以流方式判断类型
- Java 通过魔数判断上传文件的类型
- 针对不同浏览器预览上传文件的处理方式
- java上传文件以流方式判断类型
- Java解析Xml文件—判断Xml文件的节点是否存在子节点_以及对节点下不同子节点的内容解析方式
- Java 多文件上传存储到不同的路径及某上传框中未选择上传文件的处理方法
- Java 通过魔数判断上传文件的类型
- Form表单多文件改名ajax提交上传及java后台处理
- java_js判断上传的文件类型.
- Java Web 学习笔记之十三:RestEasy接口处理浏览器表单上传的文件
- java发送url请求进行文件的提交以及后台struts2的action接收处理
- Java strtus2文件下载不同浏览器文件名中文乱码处理
- 通过input上传图片,判断不同浏览器及图片类型和大小的js代码
- java判断上传文件类型(笔记)