jeesite附件处理工具类
在开发过程中,由于jeesite将附件上传后以”|”分隔开存入到数据库的字段中,而且进行了encode,所以在跟安卓对接接口的时候,会发现返回的附件类型并不是我们想要的结果,抽出一个工具类备用,亲测没什么问题, 需要注意的是:在接收的实体类中,需要定义List并get/set ` /** * 附件细化方法(返回的集合中包含:附件名称,附件路径,附件类型) * 参数:未处理的附件路径,HttpServletRequest * 返回值:处理完毕的集合(ps:需要在实体类里定义一下 List) * */
public static List<DataObj> getAttaUtil(String atta, HttpServletRequest request) throws UnknownHostException, UnsupportedEncodingException { String localhost = XrnUtils.getLocalhost(request); // 获取ip和端口号 DataObj dataObj = null; List<DataObj> dataObjs = new ArrayList<DataObj>(); if (StringUtils.isNotEmpty(atta) || atta != null) { String[] attaArr = atta.split("\|"); List<String> list = Arrays.asList(attaArr); for (int i = 1; i < list.size(); i++) { dataObj = new DataObj(); String attaGet = list.get(i); String suffix = attaGet.substring(attaGet.indexOf(".") + 1); String attas = attaGet.substring(attaGet.lastIndexOf("/") + 1, attaGet.indexOf(".")); String urlStr = attas.replaceAll("%(?![0-9a-fA-F]{2})", "%25"); // 将encode的路径转换为中文字符 urlStr = URLDecoder.decode(urlStr, "UTF-8"); // 设置编码字符集为utf-8 dataObj.setAttaKey(urlStr); dataObj.setAttaValue(localhost + attaGet); dataObj.setAttaSuffix(suffix); dataObjs.add(dataObj); } } return dataObjs; }`
调用方式
String attaVideo = learning.getAttachmentVideo(); //获取待处理的附件字段 List<DataObj>attaVideoList = XrnUtils.getAttaUtil(attaVideo,request);//调用附件工具类,参数为待处理数据,返回值处理好的附件集合(附件名称,路径,类型) learning.setAttaVideoList(attaVideoList); //将处理好的数据赋值给当前对象
上一篇:
Python 安装包管理工具 pip
下一篇:
C++内存泄漏排查以及几个工具