多文件上传到本地服务器之SpringBoot

多文件上传到本地服务器

支持单个或者多个文件上传, 可以直接拷贝使用运行

Controller:


    @Value("${profile}")
    String SPURL;

    @RequestMapping(value = "/batch/upload",method = RequestMethod.POST)
    public @ResponseBody String uploads(HttpServletRequest request,MultipartFile[] file) {
        try {
            //上传目录地址
            String uploadDir = SPURL;
            //如果目录不存在,自动创建文件夹
            File dir = new File(uploadDir);
            if (!dir.exists()) {
                dir.mkdir();
            }
            //遍历文件数组执行上传
            for (int i = 0; i < file.length; i++) {
                if (file[i] != null) {
                    //调用上传方法
                    executeUpload(uploadDir, file[i]);
                }
            }
        } catch (Exception e) {
            return "上传失败,请上传正确的视频并且上传大小在50MB之内!";
        }
        return "上传成功";

    }


    private void executeUpload(String uploadDir,MultipartFile file) throws Exception {
        //文件后缀名
        String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        /**
         * 如果是上传其他的文件例如图片,可以取消if判断
         */
        if (!suffix.equals(".mp4")
                ||suffix.equals(".vob")
                ||suffix.equals(".DVD")
                ||suffix.equals(".mpg")
                ||suffix.equals(".mpeg")
                ||suffix.equals(".dat")
                ||suffix.equals(".3gp")
                ||suffix.equals(".mov")
                ||suffix.equals(".rm")
                ||suffix.equals(".ram")
                ||suffix.equals(".rmvb")
                ||suffix.equals(".asf")
                ||suffix.equals(".asx")
                ||suffix.equals(".dvd")
                ||suffix.equals(".flv")
                ||suffix.equals(".wmv")
                ||suffix.equals(".ogm")
                ||suffix.equals(".avi")
                )
            throw new Exception("上传失败,请上传正确的视频并且上传大小在50MB之内!");
        //上传文件名
        String filename = UUID.randomUUID() + suffix;
        //服务器端保存的文件对象
        File serverFile = new File(uploadDir + filename);
        //将上传的文件写入到服务器端文件内
        file.transferTo(serverFile);
    }
    @Bean
    public MultipartConfigElement multipartConfigElement() throws Exception{
        MultipartConfigFactory factory = new MultipartConfigFactory();
        //文件最大KB,MB
        factory.setMaxFileSize("50MB");
        //设置总上传数据总大小
        factory.setMaxRequestSize("50MB");
        return factory.createMultipartConfig();
    }

application.yml:

profile: E:/Project_1/PublicService/sth/

index.html:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <title>title</title>
</head>
<body>
    <form action="/from/batch/upload" method="post" enctype="multipart/form-data" >
        <input id="file" type="file" multiple="multiple" name="file" />
        <input type="submit" value="提交" />
    </form>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_40588618/article/details/89671351
今日推荐