springboot简易上传下载
1.导入上传下载依赖:
- <dependency>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>1.3.2</version>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.4</version>
- </dependency>
<!-- 添加thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2.上传:
1)前端页面:
- <!DOCTYPE html>
- <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <script>
- function exproExcel() {
- }
- </script>
- </head>
- <body>
- <h1>Spring Boot</h1>
- <a href="/Expro/excel">导出</a>
- <p th:text="${hello}"></p>
- <p>文件上传</p>
- <form action="/upload/file" method="post" enctype="multipart/form-data">
- 上传:<input type="file" name="upfile"/>
- <button type="submit">提交</button>
- </form>
- </body>
- </html>
2)编写跳到上传页面接口:
- @Controller
- public class HelloController {
- @RequestMapping("/hello")
- public String helloIndex(HashMap<String, Object> map){
- map.put("hello","Hello SpringBoot!");
- return "/index";
- }
- }
3)编写接收上传文件接口:
- @Controller
- @RequestMapping("/upload")
- public class UploadFileController {
- @RequestMapping(value = "/file")
- public @ResponseBody String uploadFile(@RequestParam("upfile") MultipartFile file, HttpServletRequest request){
- String message ="";
- try {
- if(!file.isEmpty()){
- FileOutputStream outputStream = new FileOutputStream("F:\\XIAOYAO"+"\\"+file.getOriginalFilename());
- outputStream.write(file.getBytes());
- outputStream.flush();
- outputStream.close();
- message="上传成功!";
- }
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- message="上传失败!";
- } catch (IOException e) {
- e.printStackTrace();
- message="上传失败!";
- }
- return message;
- }
- }
3.下载:
1)编写下载接口:
- @RestController
- @RequestMapping("/Expro")
- public class ExprotExcelController {
- @RequestMapping("/excel")
- public void exproExcel(HttpServletRequest request, HttpServletResponse response) throws Exception{
- String path = ClassLoader.getSystemResource("").toURI().getPath(); //获取类加载地址
- System.out.println(path);
- File file = new File(path+"excelTempalte/模板.xlsx");
- FileInputStream fileInputStream = new FileInputStream(file); //读取文件
- response.setHeader("Content-disposition", "attachment;filename=test.xlsx"); //设置响应头和文件名字
- OutputStream outputStream = response.getOutputStream();
- //创建缓存区
- byte [] buffe = new byte[1024];
- int len =0;
- while ((len =fileInputStream.read(buffe))>0){
- outputStream.write(buffe,0,len);
- }
- fileInputStream.close();
- outputStream.flush();
- outputStream.close();
- }
- }
springboot简易上传下载的更多相关文章
- SpringBoot实现上传下载(二)
这篇写下载. **1.实现思路** 上一篇的数据库设计中,我们有一个字段始终没有用到fileName,这是用来给Layer对象存储文件名的,以此来完成文件与对象的对应, 
FTP上传下载文件(函数简易版) # 服务端 import socket import json import hashlib import struct import os user_dic = { ...
- 仵航说 前后端分离,文件上传下载(springBoot+vue+elementUI)仵老大
1.介绍 本文主要是介绍前后端分离的上传下载,后端使用的是SpringBoot,持久层用的是mybatis-plus,前端用的Vue,UI用的elementUI,测试了一下,文本,图片,excel ...
随机推荐
- XML、HTML、XHTML的关系
标记语言 XML.HTML.XHTML这三者都有ML.ML(Markup Language)标记语言在维基百科中的解释是: 一种将文本以及文本相关的信息结合起来,展示出关于文档结构和数据处理细节的计算 ...
- Win10配置Java环境变量
很多同学在学习Java入门的时候被Java环境变量搞的一头雾水,今天这篇文章拓薪教育就来说一下如何在win10下配置环境变量; 下载jdk安装包: 首先我们需要下载jdk的安装包,这里提供jdk的安装 ...
- windows游戏编程鼠标
①.常用鼠标消息: WM_MOUSEMOVE 鼠标移动位置 WM_LBUTTONDOWN 鼠标左键按下 WM_LBUTTONUP 鼠标左键弹起 ...
- WebGL的shader
WebGL的shader(着色器)有2种:vertexShader(定点着色器)和 fragmentShader(片段着色器) 顶点着色器:定义点的位置.大小 片元着色器:定义画出来的物体的材质(颜色 ...
- 前端逼死强迫症系列之css
一.编写css样式 1.ID选择器 由于ID唯一,所以也是写多遍. <head> <style> #i1{ background-color: #2459a2; height: ...
- python 识别图片中的汉字
我们就识别上面的汉字. 安装软件tesseract和python库 https://www.cnblogs.com/sea-stream/p/10961580.html 然后新建一个文件夹test,把 ...
- C语言指针方法对字符串进行去重
自己编写了3种方法,都是使用指针的.(在LR中编写的) 1.先在原字符串进行比较,然后再放入目标字符串 Action() { char *srt="aadfeedeewwffggecccew ...
- CentOS7.4搭建ftp服务
1.使用yum安装vsftpd yum install vsftpd -y 2.安装完成后,启动 FTP 服务: service vsftpd start 3.配置ftp权限 目前 FTP 服务登陆允 ...
- java课后实验性问题4
课后作业一: 使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象? 设计思路:定义类的构造函数时使静态变量i进行i++,即每构 ...
- FreeMarker学习(springmvc配置)
springMvc配置 <bean id="freemarkerConfig" class="org.springframework.web.servlet.vie ...