SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库

jopen 10年前

在项目中涉及图片上传的时候 我们往往不会把图片直接以二进制的方式存进数据库,往往是把上传的图片保存在服务器中 数据库只存更改后的图片名称。如果图片量过多的话 还可以在开一台图片服务器这里可以提高用户的体验

    /**       *        * 功能描述:       *        * @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