SpringBoot实现Excel上传与下载

文件上传

@RequestMapping(value = "/doImportExcel", method = RequestMethod.POST)
    @ApiOperation(value = "上传excel")
    public Map<String, Object> doUpload(@RequestParam("file") MultipartFile file) {
        Map<String, Object> result = new HashMap<String, Object>();
        String fileName = "";
        try {
            if (file != null) {
                //获取上传文件名
                fileName = file.getOriginalFilename();
                //获取后缀名
                String sname = fileName.substring(fileName.lastIndexOf("."));
                //获取当前时间并作为时间戳
                String timeStamp = new SimpleDateFormat("yyyy-MM-ddHHmmssSSS").format(new Date());
                //指定上传文件的路径
                String path = "D:\\" + timeStamp + fileName + sname;
                //上传保存
                file.transferTo(new File(path));
            }
            result.put("statusCode", "200");
            result.put("message", "上传成功!");
            result.put("filename", fileName);
        } catch (Exception ex) {
            result.put("statusCode", "300");
            result.put("message", "上传失败:" + ex.getMessage());
        }
        return result;
    }

文件下载

 @RequestMapping(value = "/downloadTemplate", method = RequestMethod.GET)
    public String downLoad(HttpServletResponse response) throws UnsupportedEncodingException {
        String filename = "项目导入模板.xlsx";
        String filePath = "D:\\java\\workreport";
        File file = new File(filePath + "/" + filename);
        if (file.exists()) { //判断文件父目录是否存在
            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
            response.setCharacterEncoding("UTF-8");
            // response.setContentType("application/force-download");
            response.setHeader("Content-Disposition", "attachment;fileName=" + java.net.URLEncoder.encode(filename, "UTF-8"));
            byte[] buffer = new byte[1024];
            FileInputStream fis = null; //文件输入流
            BufferedInputStream bis = null;

            OutputStream os = null; //输出流
            try {
                os = response.getOutputStream();
                fis = new FileInputStream(file);
                bis = new BufferedInputStream(fis);
                int i = bis.read(buffer);
                while (i != -1) {
                    os.write(buffer);
                    i = bis.read(buffer);
                }

            } catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println("----------file download---" + filename);
            try {
                bis.close();
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return "success";
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值