java上传文件将MultipartFile类型装换为File类型

本文介绍了一个文件上传处理的示例代码,包括文件扩展名验证、大小限制检查、文件转换及保存,以及调用后台接口进行进一步的数据处理。文章详细展示了如何使用Spring MVC框架中的`@RequestMapping`和`@ResponseBody`注解来实现文件上传的功能。
//导入
@RequestMapping("/upfile")
@ResponseBody
public Json upfile(RafficManagerPageModel rafficManagerPageModel, HttpSession session,@RequestParam("file")  MultipartFile file ){
    Json j = new Json();
    try {
        if (ResourceUtil.getUploadFileExts().indexOf(file.getOriginalFilename().substring(
                file.getOriginalFilename().indexOf(".") + 1)
                .toLowerCase()) == -1) {
            j.setSuccess(false);
            j.setMsg("导入失败!导入的文件扩展名不正确,请检查。");
            return j;
        }
        if (file.getSize() > ResourceUtil.getUploadFileMaxSize()) {
            j.setSuccess(false);
            j.setMsg("导入失败!导入的文件大小超过了{"
                    + ResourceUtil.getUploadFileMaxSize() + "}字节限制,请检查。");
            return j;
        }


//MultipartFile file转File
-------------------------

        String path=session.getServletContext().getRealPath("/upload/");
         String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));     
         String fileName = dfm.format(new Date())+ suffix; 
         File f=new File(path,fileName);
         //如果path路径不存在,创建一个文件夹
          if(!f.exists()){
             f.mkdirs();
         }
        file.transferTo(f);
        //调用后台接口
        long startTime = System.currentTimeMillis();
        Integer groupid = trafficManager.insertMemberItem(f);
        logger.info("往号码表中插入!!!");
        startTime = System.currentTimeMillis() - startTime;
        if(groupid!=null&&groupid!=-1&&!groupid.equals("")){
            TrafficItem tfItem = new TrafficItem();
            tfItem.setName(rafficManagerPageModel.getName());
            Integer includedItems = trafficManager.countMemberItem(groupid);
            tfItem.setIncludedItems(includedItems);
            tfItem.setChargeMoneyCategroy(rafficManagerPageModel.getChargeMoneyCategroy());
            tfItem.setSpid(rafficManagerPageModel.getSpid());
            tfItem.setToicp(rafficManagerPageModel.getToicp());
            Date exeDate = dateFormats.parse(rafficManagerPageModel.getExecutionDate());
            tfItem.setExecutionDate(new Date(exeDate.getTime()+startTime));//执行时间加上 导入完号码消耗的时间
            tfItem.setExpireDate(dateFormats.parse(rafficManagerPageModel.getExpireDate()));
            tfItem.setSuccessContent(rafficManagerPageModel.getSuccessContent());
            tfItem.setFailedContet(rafficManagerPageModel.getFailedContet());
            tfItem.setItemsId(groupid);
            trafficManager.insertTraffic(tfItem);
            logger.info("往任务表中插入!!!");
            j.setMsg("导入成功!");
            j.setSuccess(true);
            return j;
        }else{
            j.setMsg("导入失败!");
            j.setSuccess(false);
            return j;
        }
    } catch (Exception e) {
        e.printStackTrace();
        logger.info("任务表导入失败,请检查填写的内容是否正确!");
        //batchSendMailService.deleteMsisdns(maxid);
    }
    j.setMsg("导入失败!");
    j.setSuccess(false);
    return j;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值