Spring MVC 上传文件(图片)

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

 

   /**
     * 
     * 功能描述   保存图片
     * 
     * 
     * @param newFileName
     *            上传照片文件名
     * @param filedata
     *           文件数据
     * 
     *            修改历史 :(修改人,修改时间,修改原因/内容)
     */
    private void saveFile(String newFileName, MultipartFile filedata) {
        // TODO Auto-generated method stub
        // 根据配置文件获取服务器图片存放路径
        String picDir = "";
        try {
        //这里封装了读取配置文件的方法 配置文件中有图片的存放地址和获取地址
            Properties properties = PropertiesUtil
                    .getProperties("configure/driverpicurl.properties");
            picDir = properties.getProperty("savePicUrl");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String saveFilePath = picDir;

        /* 构建文件目录 */
        File fileDir = new File(saveFilePath);
        if (!fileDir.exists()) {
            fileDir.mkdirs();
        }

        try {
            FileOutputStream out = new FileOutputStream(saveFilePath + "\\"
                    + newFileName);
            // 写入文件
            out.write(filedata.getBytes());
            out.flush();
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
   /**
     * 
     * 功能描述:删除图片
     * 
     * 
     * @param oldPicName
     *           修改之前的文件名
     * 
     *         修改历史 :(修改人,修改时间,修改原因/内容)
     */
    private void deleteFile(String oldPicName) {
        // TODO Auto-generated method stub
        String picDir = "";
        try {
            Properties properties = PropertiesUtil
                    .getProperties("configure/driverpicurl.properties");
            picDir = properties.getProperty("savePicUrl");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        /* 构建文件目录 */
        File fileDir = new File(picDir+"/"+oldPicName);
        if (fileDir.exists()) {
            //把修改之前的图片删除 以免太多没用的图片占据空间
            fileDir.delete();
        }

    }
这是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/

 

转载于:https://my.oschina.net/u/574036/blog/890150

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值