zoukankan      html  css  js  c++  java
  • spring boot进行上传文件

    1、pom文件添加依赖

    <!-- 添加thymeleaf -->
            <dependency>  
             <groupId>org.springframework.boot</groupId>  
             <artifactId>spring-boot-starter-thymeleaf</artifactId>  
            </dependency>
    

    2、就可以直接在代码中进行实现上传下载的功能了

           上传代码如下

         

        @Override
        @RequestMapping("/upload")
        public JsonResult uploadFile(MultipartFile file) {
          //进行上传操作  
        }
    

      下载代码如下

        @Override
        @RequestMapping("/open/v1/file/downloadFile")
        public void downloadFile(String url, HttpServletResponse response) {
            if (url != null) {
                try {
                    URL urls = new URL(url);
                    URLConnection urlCon = urls.openConnection();
                    InputStream in = urlCon.getInputStream();
                    //设置响应类型
                    response.setContentType("application/octet-stream");//应用程序强制下载
                    response.setContentType("multipart/form-data");
                    //设置响应头,对文件进行url编码
    
                    String fileName = urls.getFile();
                    fileName = fileName.replaceAll("/", "_");
                    String name = URLEncoder.encode(fileName, "UTF-8");
                    response.setHeader("Content-Disposition", "enclosure;filename=" + name);
                    response.setContentLength(urlCon.getContentLength());
                    OutputStream out = response.getOutputStream();
    
                    byte[] b = new byte[1024];
                    int len = 0;
                    while ((len = in.read(b)) != -1) {
                        out.write(b, 0, len);
                    }
    
                    out.flush();
                    out.close();
                    in.close();
                } catch (IOException e) {
                    logger.error(e.getMessage());
                    throw new SunawException("文件下载异常");
                }
            }
        }
    

      然后上传下载的最基础功能就实现了。

      然而基本的上传操作只能上传1M以内的文件,那么如何上传更大的文件呢。具体操作请看下文....

      

      在yaml文件里面进行添加配置信息

    spring:
      servlet:
        multipart:
          max-file-size: 50MB   #单个文件最大上传大小
          max-request-size: 50MB  #单次请求最大上传大小
    

      这样就可控制上传文件的大小格式了。

           

          然而那些年久失修的项目,已进行上传就会上传失败为什么呢,主要是因为我们系统会定期清理文件,会将springboot一启动项目就会生成的tomcat临时文件进行删除掉,所以我们需要改变上传文件临时文件的存放目录。具体实现看上一篇文章。

      tomcat临时目录

       

  • 相关阅读:
    Debian 9/Ubuntu 18添加rc.local开机自启的方法
    第一次使用Debian9所遇到的问题
    Open-Falcon注册时点击Sign up按钮没反应
    使用VMware虚拟机里的Ubuntu18.04部署RAID 10磁盘阵列
    Ubuntu18.04下Ansible的基本使用
    Go语言求水仙花数(for循环)
    自研模块加载器(四) 模块资源定位-异步加载
    自研模块加载器(三) module模块构造器设计-模块数据初始化
    自研模块加载器(二) 加载器结构与设计导论
    自研模块加载器(一) 模块系统概述与自定义模块规范书写规定
  • 原文地址:https://www.cnblogs.com/tanyucong/p/10369981.html
Copyright © 2011-2022 走看看