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++内存泄漏排查以及几个工具
