1.导入上传下载依赖:

  1.      <dependency>
  2. <groupId>commons-fileupload</groupId>
  3. <artifactId>commons-fileupload</artifactId>
  4. <version>1.3.2</version>
  5. </dependency>
  6.  
  7. <dependency>
  8. <groupId>commons-io</groupId>
  9. <artifactId>commons-io</artifactId>
  10. <version>2.4</version>
  11. </dependency>
        <!-- 添加thymeleaf -->
         <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-thymeleaf</artifactId>
         </dependency>

2.上传:

1)前端页面:

  1. <!DOCTYPE html>
  2. <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <script>
  7. function exproExcel() {
  8.  
  9. }
  10. </script>
  11. </head>
  12. <body>
  13. <h1>Spring Boot</h1>
  14. <a href="/Expro/excel">导出</a>
  15. <p th:text="${hello}"></p>
  16. <p>文件上传</p>
  17. <form action="/upload/file" method="post" enctype="multipart/form-data">
  18. 上传:<input type="file" name="upfile"/>
  19. <button type="submit">提交</button>
  20. </form>
  21.  
  22. </body>
  23. </html>

2)编写跳到上传页面接口:

  1. @Controller
  2. public class HelloController {
  3.  
  4. @RequestMapping("/hello")
  5. public String helloIndex(HashMap<String, Object> map){
  6.  
  7. map.put("hello","Hello SpringBoot!");
  8. return "/index";
  9. }
  10. }

3)编写接收上传文件接口:

  1. @Controller
  2. @RequestMapping("/upload")
  3. public class UploadFileController {
  4.  
  5. @RequestMapping(value = "/file")
  6. public @ResponseBody String uploadFile(@RequestParam("upfile") MultipartFile file, HttpServletRequest request){
  7.  
  8. String message ="";
  9.  
  10. try {
  11.  
  12. if(!file.isEmpty()){
  13.  
  14. FileOutputStream outputStream = new FileOutputStream("F:\\XIAOYAO"+"\\"+file.getOriginalFilename());
  15.  
  16. outputStream.write(file.getBytes());
  17. outputStream.flush();
  18. outputStream.close();
  19.  
  20. message="上传成功!";
  21.  
  22. }
  23.  
  24. } catch (UnsupportedEncodingException e) {
  25. e.printStackTrace();
  26. message="上传失败!";
  27. } catch (IOException e) {
  28. e.printStackTrace();
  29. message="上传失败!";
  30. }
  31.  
  32. return message;
  33. }
  34. }

3.下载:

1)编写下载接口:

  1. @RestController
  2. @RequestMapping("/Expro")
  3. public class ExprotExcelController {
  4.  
  5. @RequestMapping("/excel")
  6. public void exproExcel(HttpServletRequest request, HttpServletResponse response) throws Exception{
  7.  
  8. String path = ClassLoader.getSystemResource("").toURI().getPath(); //获取类加载地址
  9.  
  10. System.out.println(path);
  11.  
  12. File file = new File(path+"excelTempalte/模板.xlsx");
  13. FileInputStream fileInputStream = new FileInputStream(file); //读取文件
  14.  
  15. response.setHeader("Content-disposition", "attachment;filename=test.xlsx"); //设置响应头和文件名字
  16. OutputStream outputStream = response.getOutputStream();
  17.  
  18. //创建缓存区
  19. byte [] buffe = new byte[1024];
  20.  
  21. int len =0;
  22.  
  23. while ((len =fileInputStream.read(buffe))>0){
  24. outputStream.write(buffe,0,len);
  25. }
  26.  
  27. fileInputStream.close();
  28. outputStream.flush();
  29. outputStream.close();
  30. }
  31. }

springboot简易上传下载的更多相关文章

  1. SpringBoot实现上传下载(二)

    这篇写下载. **1.实现思路** 上一篇的数据库设计中,我们有一个字段始终没有用到fileName,这是用来给Layer对象存储文件名的,以此来完成文件与对象的对应, ![image.png](ht ...

  2. springboot文件上传下载简单使用

    springboot的文件上传比较简单 一.使用默认的Resolver:StandardServletMultipartResolver controller package com.mydemo.w ...

  3. SpringBoot文件上传下载

    项目中经常会有上传和下载的需求,这篇文章简述一下springboot项目中实现简单的上传和下载. 新建springboot项目,前台页面使用的thymeleaf模板,其余的没有特别的配置,pom代码如 ...

  4. springboot 文件上传下载

    关键点: 1,使用 POST 请求2,consumes=MediaType.MULTIPART_FROM_DATA_VALUE3,@RequestParm 里面的字符串和前端 input 控件的 na ...

  5. springboot文件上传下载,转载的

    Spring Boot入门——文件上传与下载 原文来自:https://www.cnblogs.com/studyDetail/articles/7003253.html 1.在pom.xml文件中添 ...

  6. SpringBoot 文件上传、下载、设置大小

    本文使用SpringBoot的版本为2.0.3.RELEASE 1.上传单个文件 ①html对应的提交表单 <form action="uploadFile" method= ...

  7. springboot整合vue实现上传下载文件

    https://blog.csdn.net/yhhyhhyhhyhh/article/details/89888953 文章目录 springboot整合vue实现上传下载文件 1上传下载文件api文 ...

  8. FTP上传下载文件(函数简易版)

    FTP上传下载文件(函数简易版) # 服务端 import socket import json import hashlib import struct import os user_dic = { ...

  9. 仵航说 前后端分离,文件上传下载(springBoot+vue+elementUI)仵老大

    1.介绍 ​ 本文主要是介绍前后端分离的上传下载,后端使用的是SpringBoot,持久层用的是mybatis-plus,前端用的Vue,UI用的elementUI,测试了一下,文本,图片,excel ...

随机推荐

  1. XML、HTML、XHTML的关系

    标记语言 XML.HTML.XHTML这三者都有ML.ML(Markup Language)标记语言在维基百科中的解释是: 一种将文本以及文本相关的信息结合起来,展示出关于文档结构和数据处理细节的计算 ...

  2. Win10配置Java环境变量

    很多同学在学习Java入门的时候被Java环境变量搞的一头雾水,今天这篇文章拓薪教育就来说一下如何在win10下配置环境变量; 下载jdk安装包: 首先我们需要下载jdk的安装包,这里提供jdk的安装 ...

  3. windows游戏编程鼠标

    ①.常用鼠标消息: WM_MOUSEMOVE           鼠标移动位置 WM_LBUTTONDOWN       鼠标左键按下 WM_LBUTTONUP             鼠标左键弹起 ...

  4. WebGL的shader

    WebGL的shader(着色器)有2种:vertexShader(定点着色器)和 fragmentShader(片段着色器) 顶点着色器:定义点的位置.大小 片元着色器:定义画出来的物体的材质(颜色 ...

  5. 前端逼死强迫症系列之css

    一.编写css样式 1.ID选择器 由于ID唯一,所以也是写多遍. <head> <style> #i1{ background-color: #2459a2; height: ...

  6. python 识别图片中的汉字

    我们就识别上面的汉字. 安装软件tesseract和python库 https://www.cnblogs.com/sea-stream/p/10961580.html 然后新建一个文件夹test,把 ...

  7. C语言指针方法对字符串进行去重

    自己编写了3种方法,都是使用指针的.(在LR中编写的) 1.先在原字符串进行比较,然后再放入目标字符串 Action() { char *srt="aadfeedeewwffggecccew ...

  8. CentOS7.4搭建ftp服务

    1.使用yum安装vsftpd yum install vsftpd -y 2.安装完成后,启动 FTP 服务: service vsftpd start 3.配置ftp权限 目前 FTP 服务登陆允 ...

  9. java课后实验性问题4

    课后作业一: 使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象? 设计思路:定义类的构造函数时使静态变量i进行i++,即每构 ...

  10. FreeMarker学习(springmvc配置)

    springMvc配置 <bean id="freemarkerConfig" class="org.springframework.web.servlet.vie ...