springboot实现文件的上传到项目静态路径下(resource/static)和上传多个文件

springboot上传单个文件

上传文件到两个不同的路径下,一个是项目路径,一个的项目编译路径,上传到编译路径下(target)文件可能会自动消失

	@PostMapping("/uploadfile")
    @ResponseBody
    public String upload(@RequestParam("file") MultipartFile file) throws IOException {
		//如果文件不存在上传失败
        if (file.isEmpty()) {
            LOGGER.info("上传失败");
            System.out.println("文件不存在");
            return "upload fail";
        }
		//获取文件名字
        String fileName = file.getOriginalFilename();
        //设置编译后文件存在路径
        String path = ClassUtils.getDefaultClassLoader().getResource("").getPath()+"static/images/tx/";
        //获取项目路径
        File directory = new File("src/main/resources/static/images/tx");
        String paths = directory.getCanonicalPath();

        File dest = new File(paths+'/' + fileName);
        System.out.println(dest.getAbsoluteFile());

        FileInputStream fileInputStream = (FileInputStream) file.getInputStream();
        //以流的方式上传
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(path + File.separator + fileName));
        byte[] bs = new byte[1024];
        int len;
        while ((len = fileInputStream.read(bs)) != -1) {
            bos.write(bs, 0, len);
        }
        bos.flush();
        bos.close();
        try {
        	//文件上传
            file.transferTo(dest);
            LOGGER.info("上传成功");
            return "upload success";
        } catch (IOException e) {
            LOGGER.error(e.toString(), e);
        }
        return "upload success";
    }

springboot上传多个文件

上传到项目静态路径下可参考上面

 	@PostMapping("/uploadfiles")
 	@ResponseBody
    public String upalb(@RequestParam("file") MultipartFile[] file) throws IOException {
    	if(file.length==0){
        	return "file not exist";
        }
    	//分别上传每个文件
        for(int i=0;i<file.length;i++){
            String fileName = file[i].getOriginalFilename();
            String path = ClassUtils.getDefaultClassLoader().getResource("").getPath()+"static/images/";
            File dest = new File(paths + fileName);
            System.out.println(dest.getAbsoluteFile());
            try {
                file[i].transferTo(dest);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }        
        return "upload success";

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值