1. 程式人生 > >自己引入jar包實現的圖片上傳

自己引入jar包實現的圖片上傳

one msg 相對路徑 art nts eof multi tac quest

這個圖片上傳主要實現用戶實名認證,截取字符串有點繁瑣,有任何建議,歡迎評論提出。

1.首先引入一個jar包

org.springframework.web.multipart;

2.開始上傳圖片,以文件流接收

package com.qianmo.qmyj.controller;

import com.qianmo.qmyj.bean.dto.UserInfo;
import com.qianmo.qmyj.bean.request.FindMsgRequest;
import com.qianmo.qmyj.bean.request.FindOneMessageRequest;
import
com.qianmo.qmyj.bean.response.FindMsgResponse; import com.qianmo.qmyj.bean.response.FindOneMessageResponse; import com.qianmo.qmyj.common.Constants; import com.qianmo.qmyj.framework.util.DataVerifyUtil; import com.qianmo.qmyj.service.UserInfoExecuteService; import org.slf4j.Logger; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import
org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * 圖片上傳 * */ @Controller @RequestMapping(value = "/UploadImageController") public class UploadImageController extends BaseController { Logger logger = LoggerFactory.getLogger(UploadImageController.class); // @Resource // MsgService msgService; @Resource private UserInfoExecuteService userInfoExecuteService; /* * 上傳圖片; * */ @ResponseBody @RequestMapping(value = "/upload",method = RequestMethod.POST) public Map upload(@RequestParam(value = "imgPath") MultipartFile multipartFile,String userId,String imgType, HttpServletRequest request){ logger.info("——————進入上傳圖片接口"); Map map=new HashMap();      //IdCard是項目中的文件目錄,會自動存到本地項目裏 String upload=request.getRealPath("/IdCard/"+ multipartFile.getOriginalFilename()); logger.info("——————進入上傳圖片接口,upload:"+upload); //截取圖片名稱前面的字符串 String imgIdCardPath = upload.substring(upload.indexOf("D"),upload.lastIndexOf("m")-1); logger.info("——————截取圖片名稱前面的字符串,imgIdCardPath:"+imgIdCardPath); //截取圖片名稱後面的字符串 String imgIdCardPath2 = upload.substring(upload.indexOf("C")+5,upload.length()); logger.info("——————截取圖片名稱後面的字符串,imgIdCardPath2:"+imgIdCardPath2); Date d=new Date(); long timeStr=d.getTime(); if (imgType.equals("0")){ upload = imgIdCardPath +"face"+ String.valueOf(timeStr)+imgIdCardPath2; }else if(imgType.equals("1")){ upload = imgIdCardPath +"crtA"+ String.valueOf(timeStr)+imgIdCardPath2; }else if(imgType.equals("2")){ upload = imgIdCardPath +"crtB"+ String.valueOf(timeStr)+imgIdCardPath2; } logger.info("——————upload,upload:"+upload); //截取圖片存入數據庫 String imgPath=upload.replaceAll("\\\\","/"); imgPath = imgPath+"0"; imgPath = imgPath.substring(imgPath.indexOf("I"), imgPath.lastIndexOf("0")); logger.info("——————imgPath,imgPath:"+imgPath); // System.out.println(str.substring(str.indexOf(">")+1, str.lastIndexOf("<"))); 截取指定兩個字符之間的字符 UserInfo cust=userInfoExecuteService.findOneUserStr(userId); logger.info("——————cust:"+cust); if (imgType.equals("0")){//0代表頭像 File folder = new File(imgIdCardPath); File[] files = folder.listFiles();//如果圖片存在,則刪除 String str1=cust.getUserFaceImg().substring(cust.getUserFaceImg().indexOf("/")+ Constants.score.one, cust.getUserFaceImg().length()); if (null !=files) { for (File file : files) { if (file.getName().equals(str1)) { file.delete(); break; } } } /*if (!"".equals(cust.getUserFaceImg())||null!=cust.getUserFaceImg()){//如果圖片存在,則刪除 logger.info("——————如果圖片存在,則刪除:刪除!"); clearFiles(upload); }*/ //獲取絕對相對路徑 //文件上傳到指定路徑; try { UserInfo userInfo = new UserInfo(); userInfo.setUserId(userId); userInfo.setUserFaceImg(imgPath); int count = userInfoExecuteService.updateUserImage(userInfo);//修改頭像 logger.info("——————修改頭像,count:"+count); UserInfo customer=userInfoExecuteService.findOneUserStr(userId);//獲取最新工人對象 logger.info("——————獲取最新工人對象,customer:"+customer); multipartFile.transferTo(new File(upload)); logger.info("——————上傳頭像成功,multipartFile:"+upload); //使用給map添加數據並返回; map.put("code","0000"); map.put("imagePath",imgPath); map.put("customer",customer); map.put("message","上傳成功!"); return map; }catch (Exception e){ map.put("code","1111"); map.put("message","頭像"); map.put("message","上傳失敗!"); return map; } }else if (imgType.equals("1")){//1代表身份證正面照 File folder = new File(imgIdCardPath); File[] files = folder.listFiles();//如果圖片存在,則刪除 String str1=cust.getIdCardPositiveImg().substring(cust.getIdCardPositiveImg().indexOf("/")+ Constants.score.one, cust.getIdCardPositiveImg().length()); if (null !=files) { for (File file : files) { if (file.getName().equals(str1)) { file.delete(); break; } } } /*if (!"".equals(cust.getIdCardPositiveImg())||null!=cust.getIdCardPositiveImg()){//如果圖片存在,則刪除 clearFiles(upload); }*/ //獲取絕對相對路徑 //文件上傳到指定路徑; try { UserInfo userInfo = new UserInfo(); userInfo.setUserId(userId); userInfo.setIdCardPositiveImg(imgPath); int count = userInfoExecuteService.updateUserImage(userInfo);//修改頭像 multipartFile.transferTo(new File(upload)); //使用給map添加數據並返回; map.put("code","0000"); map.put("imagePath",imgPath); map.put("message","上傳成功!"); return map; } catch (Exception e) { e.printStackTrace(); map.put("code","1111"); map.put("CardPicture2","身份證正面"); map.put("message","上傳失敗!"); return map; } }else if (imgType.equals("2")){//2代表身份證反面照 File folder = new File(imgIdCardPath); File[] files = folder.listFiles();//如果圖片存在,則刪除 String str1=cust.getIdCardNegativeImg().substring(cust.getIdCardNegativeImg().indexOf("/")+ Constants.score.one, cust.getIdCardNegativeImg().length()); if (null !=files) { for (File file : files) { if (file.getName().equals(str1)) { file.delete(); break; } } } /*if (!"".equals(cust.getIdCardNegativeImg())||null!=cust.getIdCardNegativeImg()){//如果圖片存在,則刪除 clearFiles(upload); }*/ //獲取絕對相對路徑 //文件上傳到指定路徑; try { UserInfo userInfo = new UserInfo(); userInfo.setUserId(userId); userInfo.setIdCardNegativeImg(imgPath); int count = userInfoExecuteService.updateUserImage(userInfo);//修改頭像 multipartFile.transferTo(new File(upload)); //使用給map添加數據並返回; map.put("code","0000"); map.put("imagePath",imgPath); map.put("message","上傳成功!"); } catch (Exception e) { e.printStackTrace(); map.put("code","1111"); map.put("CardPicture2","身份證反面"); map.put("message","上傳失敗!"); return map; } }else{ map.clear(); map.put("code","1111"); map.put("message","圖片上傳失敗,類型請選擇0(頭像),1(身份證正面照),2(身份證反面照)"); return map; } return map; } @ResponseBody @RequestMapping(value = "/findMsg",method = RequestMethod.POST) public FindMsgResponse findMsg(FindMsgRequest request){ return userInfoExecuteService.findMsgList(request); } /*** * 查詢單個消息 * @param request * @return */ @ResponseBody @RequestMapping(value = "/findJupsh",method = RequestMethod.POST) public FindOneMessageResponse findOneMsg(FindOneMessageRequest request){ return userInfoExecuteService.findOneMsg(request); } /*** * 查詢所有消息 * @param request * @return */ @ResponseBody @RequestMapping(value = "/findAllJupsh",method = RequestMethod.POST) public FindMsgResponse findOneMsg(FindMsgRequest request){ return userInfoExecuteService.findMsgList(request); } }

自己引入jar包實現的圖片上傳