springboot实现文件上传下载

wapConfig.getFilePath()配置文件存储的本地地址(例如:D:\xxFiles\)

上传文件需要判断文件夹是否存在,文件路径如果是a/b/c的则需要创建多个文件夹,判断如果存在,需要删除之前的文件,转存覆盖文件

  • 上传单个文件
    @ApiOperation(value = "上传文件")
    @PostMapping("uploadFile/{path}")
    public WapResponse<String> uploadFile(@RequestParam String path, @RequestParam MultipartFile file) throws IOException {
        try {
            String rootPath = wapConfig.getFilePath();
            File folder = new File(rootPath);
            if (!folder.exists()) {//判断文件夹是否存在
                folder.mkdir();
            }
            if (path != null) {//如果路径是多层则需要循环创建文件夹
                String[] folderNames = path.split("/");
                for (int i = 0; i < folderNames.length; i++) {
                    rootPath = rootPath + "\\" + folderNames[i];
                    File folderFile = new File(rootPath);
                    if (!folderFile.exists()) {//判断文件夹是否存在
                        folderFile.mkdir();//创建文件夹
                    }
                }
            }

            String filename = file.getOriginalFilename();//获取文件名
            String filePath = rootPath + "\\" + filename;//文件的绝对路径
            File newFile=new File(filePath);
            if(newFile.exists())//判断是否存在
                newFile.delete();//删除旧的文件
            file.transferTo(newFile);//文件转存
            return WapResponse.success(filePath);
        } catch (Exception e) {
            log.error(e.getMessage());
            return WapResponse.error();
        }
    }
  • 上传文件集合
    @ApiOperation(value = "上传文件集合")
    @PostMapping("uploadFileList/{path}")
    public WapResponse<ArrayList<String>> uploadFileList(@RequestPart String path, @RequestParam MultipartFile[] files) throws IOException {
        try {
            String rootPath = wapConfig.getFilePath();
            File folder = new File(rootPath);
            if (!folder.exists()) {//判断文件夹是否存在
                folder.mkdir();
            }
            if (path != null) {//循环创建文件夹
                String[] folderNames = path.split("/");
                for (int i = 0; i < folderNames.length; i++) {
               
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姗姗的鱼尾喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值