在运行的项目中发现,某些图片上传后,在线查看图片时,图片处显示X不显示,排查后发现是由于特殊符号问题,需要进行处理。
正常图片中可能包含中文需要进行编码处理:
java.net.URLEncoder.encode(filename, "UTF-8");
以上正常情况下转换后的URL是能够显示的,但是对于图片来说,需要将图片呈现在浏览器中,有两个特殊字符如果出现的话是不会显示,只会出现X
- 1.空格:空格在url中会显示为“+”号,有+号的话则不能显示图片,需要输出时转换其为“%20”
java.net.URLEncoder.encode(filename, "UTF-8").replaceAll("\\+","%20");
- 2.“%”:%符号会在url中编码为“%25”,此编码也不能显示图片,直接处理不了url符号,因此我们在上传图片的过程中作替换处理即可
//图片名中的“%25”因在浏览器中不能直接显示,随便替换一个符号
String filename = file.getOriginalFilename().replaceAll("%","b");
%符号的url转换不显示图片,我不清楚是否还有其他方法,上传图片时替换处理虽然能解决,但是图片名称被替换了(虽然影响不大)。
原创文章,作者:发布专员,如若转载,请注明出处:https://ziliaobaba.com/29020.html