java入门006~springboot实现多文件的上传(java多文件的上传)(1)

Java高频面试专题合集解析:

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,其中囊括了Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

更多Java架构进阶资料展示

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

完整代码给大家贴出来


/\*\*

 \* Created by qcl on 2019-06-11

 \* desc: 文件上传

 \*/

@RestController

public class UploadController {

    //单个文件的上传

    @PostMapping("/upload")

    public String upload(MultipartFile uploadFile, HttpServletRequest request) {

        /\*

         定义文件的存储路径,如下,是在linux和mac上定义的文件路径

        /private/var/folders/8x/4zvnbqmj1w33cqmzrpygzbth0000gn/T/tomcat-docbase.5206733816001100271.8080/uploadFile

         \*/

        String realPath = request.getSession().getServletContext().getRealPath("/uploadFile/");

        File dir = new File(realPath);

        if (!dir.isDirectory()) {//文件目录不存在,就创建一个

            dir.mkdirs();

        }

        try {

            String filename = uploadFile.getOriginalFilename();

            //服务端保存的文件对象

            File fileServer = new File(dir, filename);

            System.out.println("file文件真实路径:" + fileServer.getAbsolutePath());

            //2,实现上传

            uploadFile.transferTo(fileServer);

            String filePath = request.getScheme() + "://" +

                    request.getServerName() + ":"

                    + request.getServerPort()

                    + "/uploadFile/" + filename;

            //3,返回可供访问的网络路径

            return filePath;

        } catch (IOException e) {

            e.printStackTrace();

        }

        return "上传失败";

    }

    //多个文件的上传

    @PostMapping("/uploads")

    public String uploads(MultipartFile\[\] uploadFiles, HttpServletRequest request) {

        //1,对文件数组做判空操作

        if (uploadFiles == null || uploadFiles.length < 1) {

            return "文件不能为空";

        }

        //2,定义文件的存储路径,

        String realPath = request.getSession().getServletContext().getRealPath("/uploadFile/");

        File dir = new File(realPath);

        if (!dir.isDirectory()) {//文件目录不存在,就创建一个

            dir.mkdirs();

        }

        try {

            String filePathS = "";

            //3,遍历文件数组,一个个上传

            for (int i = 0; i < uploadFiles.length; i++) {

                MultipartFile uploadFile = uploadFiles\[i\];

                String filename = uploadFile.getOriginalFilename();

                //服务端保存的文件对象

                File fileServer = new File(dir, filename);

                System.out.println("file文件真实路径:" + fileServer.getAbsolutePath());

                //2,实现上传

                uploadFile.transferTo(fileServer);

                String filePath = request.getScheme() + "://" +

                        request.getServerName() + ":"

                        + request.getServerPort()

                        + "/uploadFile/" + filename;

                filePathS = filePathS + "\\n" + filePath;

            }

            //4,返回可供访问的网络路径

            return filePathS;

        } catch (IOException e) {

            e.printStackTrace();

        }

        return "上传失败";

    }

}



​到这里我们多文件上传的代码就全部实现了。

三,启动项目(三种方式~推荐第一种)

==================

1,点击绿色箭头(最简便,提倡)

2,点击main方法前的绿色箭头

3,命令行输入 mvn spring-boot:run

四,验证

====

1,输入下图的链接,进入文件选择页

2,选择多个文件,我们这里选择3个图片,一个视频

3,点击上传,然后上传成功如下图

最近我根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司21年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

…(img-z5WdFEsL-1715293456579)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值