SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库
在项目中涉及图片上传的时候 我们往往不会把图片直接以二进制的方式存进数据库,往往是把上传的图片保存在服务器中 数据库只存更改后的图片名称。如果图片量过多的话 还可以在开一台图片服务器这里可以提高用户的体验 /** * * 功能描述: * * @author :xiaoyu 创建日期 :2014年2月1日 下午7:37:45 * * @param filedata * 上传照片文件 * @param driver * * @param model * Model * @return * * 修改历史 :(修改人,修改时间,修改原因/内容) */ @RequestMapping(value = "/save.do", method = RequestMethod.POST) public String saveDriver( @RequestParam(value = "photo", required = false) MultipartFile filedata, Driver driver, Model model) { trimDriver(driver); model.addAttribute(driver); // 判断图片大小是否大于2M if (filedata.getSize() > Constant.UPLOAD_PHOTO_SIZE) { model.addAttribute("isSaveSuccess", false); IMessage msg = new Message("MSG_YS030_002", MsgTypeEnum.INFO, null); model.addAttribute("msg", msg.toString()); return "ys030/YS033"; } // 判断司机是否已存在 if (this.ys030Service.isExist(driver.getOrganizationId(), driver.getIdCardNumber(), null)) { model.addAttribute("isSaveSuccess", false); IMessage msg = new Message("ERR_YS030_003", MsgTypeEnum.ERROR, null); model.addAttribute("msg", msg.toString()); return "ys030/YS033"; } // 保存相对路径到数据库 图片写入服务器 if (filedata != null && !filedata.isEmpty()) { // 获取图片的文件名 String fileName = filedata.getOriginalFilename(); // 获取图片的扩展名 String extensionName = fileName .substring(fileName.lastIndexOf(".") + 1); // 新的图片文件名 = 获取时间戳+"."图片扩展名 String newFileName = String.valueOf(System.currentTimeMillis()) + "." + extensionName; try { driver.setPicUrl(newFileName); saveFile(newFileName, filedata); } catch (Exception e) { log.error("上传图片失败.", e); model.addAttribute("isSaveSuccess", false); IMessage msg = new Message("MSG_YS030_001", MsgTypeEnum.INFO, null); model.addAttribute("msg", msg.toString()); return "ys030/YS033"; } } this.ys030Service.save(driver); model.addAttribute(driver); model.addAttribute("isSaveSuccess", true); return "ys030/YS033"; }
这是properties 文件 #============================================================================ #savePicUrl=D:/tomcat/apache-tomcat-7.0.39/webapps/driverPic 服务器图片存放路径(服务器绝对路径与工程同目录) #getPicUrl=http://xxx.xxx.xx.xxx:8080/driverPic/ 服务器图片获取地址 #============================================================================ savePicUrl=D:/tomcat/apache-tomcat-7.0.39/webapps/driverPic getPicUrl=http://xxx.xxx.xx.xxx:8080/driverPic/
来自:http://my.oschina.net/pingdy/blog/199592