springboot--文件上传

一、文件配置

  1. application.properties中增加下面配置
    #文件上传和访问需要指定磁盘路径
    web.images-path=F:\
    
    spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path} 
    
  2. 文件上传大小配置(选)
    启动类 添加加以下方法:
    //文件大小配置,启动类里面配置,设置单个文件大小
        @Bean
        public MultipartConfigElement multipartConfigElement() {
            MultipartConfigFactory factory = new MultipartConfigFactory();
            //单个文件最大
            factory.setMaxFileSize(DataSize.parse("10240")); //KB,MB
            /// 设置总上传数据总大小
            factory.setMaxRequestSize(DataSize.parse("1024000KB"));
            return factory.createMultipartConfig();
        }
    

二、代码书写

  1. 文件上传代码
    controller层,这里的两个自定义的文件上传路径,
    第一个路径是在resources下的static文件夹下新建一个文件夹images,储存上传的文件;

    第二个路径是客户端上传文件的路径,可自定义路径;使用客户端时,需要打包,在cmd中运行jar包;
    附: 打成jar包需要maven依赖

    			<!--打包成jar包,需要增加maven依赖-->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
    
    /**
     * 文件上传
     */
    @RestController
    public class FileController {
    
        //文件上传到的路径
        private String filePath = "E:\\实训项目\\AJax\\spring\\spring_boot01\\src\\main\\resources\\static\\images\\";
        //客户端文件上传路径
    //    private String filePath = "F:\\";
    
        @PostMapping("/upload")
        public Object upload(MultipartFile upload, HttpServletRequest request){
            String name = request.getParameter("name");
            System.out.println("当前上传的人是:" + name);
            //1.获取文件上传的文件名
            String fileName = upload.getOriginalFilename();
            System.out.println("文件名称是:" + fileName);
            //2.获取文件的后缀
            String suffixName = fileName.substring(fileName.lastIndexOf("."));
            System.out.println("该文件后缀名是:" + suffixName);
            //3.获取文件上传后的路径
            fileName = UUID.randomUUID() + suffixName;
            File path = new File(filePath + fileName);
            //4.开始上传
            try {
                upload.transferTo(path);
                return new JsonData(0,fileName);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return new JsonData(-1,"上传失败",null);
        }
    
    }
    
  2. 浏览器测试

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值