1.controller代碼
/**
* 圖片上傳功能
*
* @param multipartFile //圖片文件
* @param missionId
* @return
*/
@ResponseBody
@RequestMapping(value = "/upload", method = RequestMethod.POST, headers = "content-type=multipart/form-data")
public ResponseEntity<Map<String, Object>> imageUploa(@RequestParam("multipartFile") MultipartFile[] multipartFile,
@RequestParam("missionId") String missionId, HttpServletRequest request) {
Map<String, Object> message = Maps.newHashMap();
//照片路徑info
String info = "";
//照片路徑列表list
ArrayList<String> list = new ArrayList<>();
for (MultipartFile file : multipartFile) {
info = missionService.uploadPictureByFile(missionId, file);
list.add(info);
}
if (list.size() > 0) {
//圖片上傳成功
message.put("data", list);
message.put(Constant.RETURNCODE_KEY_OPTRESULT, Constant.AUTH_SUCCESS);
return ResponseEntity.ok(message);
}
//圖片上傳失敗
message.put(Constant.RETURNCODE_KEY_OPTRESULT, Constant.INVALID_PARAM);
return new ResponseEntity<Map<String, Object>>(
message,
HttpStatus.BAD_REQUEST);
}
2.service代碼
/**
* 圖片上傳方法,並把圖片訪問路徑保存到數據庫
*
* @param missionId
* @param file
* @return //返回上傳成功的url
*/
/**
* 圖片上傳到服務器的保存路徑
*/
public static final String PICTUREURL = Global.getConfig("PICTUREURL");//配置在配置文件中
/**
* 圖片上傳的服務器和二維碼生的服務器
*/
public static final String CONFIGUREURL = Global.getConfig("CONFIGUREURL");//配置在配置文件中
@Transactional(readOnly = false, rollbackFor = Exception.class)
public String uploadPictureByFile(String missionId, MultipartFile file) {
String filename1 = "picture_" + UUID.randomUUID() + ".jpg";//生成唯一圖片路徑
if (!file.isEmpty()) {
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
//設置允許上傳文件類型
String suffixList = "jpg,png,ico,bmp,jpeg";
if (suffixList.contains(suffix)) {
try {
File filepath = new File(PICTUREURL);
if (!filepath.exists()) {
filepath.mkdirs();
}
// 文件保存路徑
String savePath = PICTUREURL + filename1;
// 轉存文件
file.transferTo(new File(savePath));
String url = CONFIGUREURL + filename1;
missionDao.saveMissionPic(missionId, url,new Date()); //本項目用於保存圖片的url的數據庫插入數據
return url;
} catch (Exception e) {
e.printStackTrace();
return String.valueOf(e);
}
} else {
return "上傳的文件不是圖片";
}
} else {
return "請選擇圖片上傳";
}
}