Spring boot 文件上传

本文详细介绍了如何在SpringBoot中实现单文件和多文件上传功能,包括MultipartFile和MultipartHttpServletRequest的使用,以及如何配置上传文件的大小限制和临时路径。

spring boot文件上传参考示例

demo测试通过,使用版本如下: spring boot版本:1.5.10.RELEASE java版本:1.8 maven版本:apache-maven-3.3.9

. 单文件上传

/**
     * 单文件上传
     * @param file
     * @return
     */
    @PostMapping(value = "/uploadfile")
    public String upload(@RequestParam("file") MultipartFile file) throws IOException {
        if (!file.isEmpty()) {
            try {
                //指定路径加文件名就会将文件保存到指定的路径下,
                String file_upload_path = "D:\\uploadfile\\"+file.getOriginalFilename();
                //没有指定就保存到项目所有的目录下
                //String file_upload_path = file.getOriginalFilename();
                BufferedOutputStream out = new BufferedOutputStream(
                        new FileOutputStream(new File(file_upload_path)));
                out.write(file.getBytes());
                out.flush();
                out.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                return "上传失败," + e.getMessage();
            } catch (IOException e) {
                e.printStackTrace();
                return "上传失败," + e.getMessage();
            }
            return "上传成功";
        } else {
            return "上传失败,因为文件是空的.";
        }
    }

. 多文件上传

/**
     * 多文件上传 主要是使用了MultipartHttpServletRequest和MultipartFile
     * @param request
     * @return
     */
    @PostMapping(value = "/upload/batch")
    public  String batchUpload(HttpServletRequest request) {
        List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");
        MultipartFile file = null;
        BufferedOutputStream stream = null;
        for (int i = 0; i < files.size(); ++i) {
            file = files.get(i);
            if (!file.isEmpty()) {
                //指定路径加文件名就会将文件保存到指定的路径下,
                String file_upload_path = "D:\\uploadfile\\"+file.getOriginalFilename();
                //没有指定就保存到项目所有的目录下
                //String file_upload_path = file.getOriginalFilename();
                try {
                    byte[] bytes = file.getBytes();
                    stream = new BufferedOutputStream(new FileOutputStream(new File(file_upload_path)));
                    stream.write(bytes);
                    stream.close();
                } catch (Exception e) {
                    stream = null;
                    return "上传失败 " + i + " => " + e.getMessage();
                }
            } else {
                return "上传失败,文件为空";
            }
        }
        return "上传成功";
    }

. 配置信息

#设置上传文件的最大限制
spring.http.multipart.max-file-size=10MB
#设置总上传的数据大小
spring.http.multipart.max-request-size=100MB
#设置文件上传的临时路径
spring.http.multipart.location=临时路径地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值