1.首先在pom文件中加入如下依赖:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.2</version>
<scope>compile</scope>
</dependency>
2.代码如下:
@RequestMapping(value = "/Aupload", method = RequestMethod.POST)
public void importHeadPic(HttpServletRequest request, HttpServletResponse response,
@RequestParam("file") MultipartFile file) {
// 获取到上传过来的文件
List<String> typeList = Arrays.asList("png", "jpg", "jpeg");
String contentType = file.getOriginalFilename();
String[] splitType = contentType.split("\\.");
// 判定传过来的文件是否合法
if (!typeList.contains(splitType[splitType.length - 1])) {
returnErrorMsg(response, "上传的文件格式不对,请上传png,jpg,jpeg格式的文件");
return;
}
// 给存放到内存中的文件换一个名字(id.后缀名)
String filename = file.getOriginalFilename();
String suffix = filename.substring(filename.lastIndexOf("."));
filename = UUID.randomUUID().toString().replaceAll("-", "") + suffix;
// 将文件路径写入到数据库
Date date = new Date();
String stringDate = format.format(date);
// 从数据库查询url所需要的数据
Map<String, Object> filterMap = new HashMap<>();
filterMap.put("headportrait", filename);
filterMap.put("dateofoperator", stringDate);
// 封装查询条件
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("data", filterMap);
try {
MiddleServiceBean msb = new MiddleServiceBean();
msb.setFunction("com.zykj.pbms.service.UploadTemplateService.updateOne");
msb.setData(dataMap);
String middleService = MiddleService(request, msb);
// 解析获取查询到的url
JSONObject json = JSON.parseObject(middleService);
// 解析出路径
String stra = json.get("value").toString();
JSONObject jsonMap = JSON.parseObject(stra);
String controlUrl = jsonMap.get("controlUrl").toString();
// 处理文件
Client client = Client.create();
WebResource webService = client.resource(controlUrl);
// 将文件传到主机上
webService.put(file.getBytes());
// 将获取图片的方式返回回去
returnJsonMsg(response, JSONObject.toJSONString(controlUrl));
} catch (IOException | ParamCheckException e) {
log.debug("importHeadImg", e.getMessage());
returnErrorMsg(response, "保存头像失败");
} catch (Exception e) {
log.debug("importHeadImg", e.getMessage());
returnErrorMsg(response, "保存头像失败");
}
}