Springboot文件上传代码笔记
1.在src下创建filter包,包内Class名UploadFilter
package com.gd.filter; import org.apache.catalina.servlet4preview.http.HttpServletRequest; import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException; @WebFilter(urlPatterns = "/upload/*", filterName = "uploadFilter")
public class UploadFilter implements Filter {
//定义文件路径常量
public static final File UPLOAD_FOLDER = new File("F:\\nginx-1.14.2\\html\\upload");//修改上传路径
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("初始化uploadFilter");
} @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//转换ServletRequest request类型
HttpServletRequest req = (HttpServletRequest) request;
String uri = req.getRequestURI();
int index = uri.lastIndexOf("/");
String fileName = uri.substring(index + 1);
File file = new File(UploadFilter.UPLOAD_FOLDER, fileName);
//输入流
FileInputStream fileInputStream = new FileInputStream(file);
byte[] bs = new byte[(int) file.length()];
fileInputStream.read(bs);
//关闭流
fileInputStream.close();
//转换ServletResponse response类型
HttpServletResponse resp = (HttpServletResponse) response;
resp.getOutputStream().write(bs);
System.out.println("---请求进入--");
} @Override
public void destroy() { }
}
2.在控制层(controller)编写交互接口
package com.gd.controller; import com.gd.filter.UploadFilter;
import org.apache.catalina.servlet4preview.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import java.io.File;
import java.io.IOException; @RestController
public class UploadController { /**
* 文件上传
*
* @param multipartFile
* @param request
* @return
*/
@RequestMapping("/uploadFile")
public String uploadFile(@RequestParam("multipartFile") MultipartFile multipartFile,HttpServletRequest request) {
System.out.println(multipartFile.getOriginalFilename());
System.out.println("上传的文件夹路径:" + UploadFilter.UPLOAD_FOLDER);
if (UploadFilter.UPLOAD_FOLDER.exists() == false) {
UploadFilter.UPLOAD_FOLDER.mkdirs();
}
//准备用来接收数据的文件
File uploadFile = new File(UploadFilter.UPLOAD_FOLDER, multipartFile.getOriginalFilename());
try {
multipartFile.transferTo(uploadFile);
} catch (IOException e) {
e.printStackTrace();
}
return "ok";
}
}
3.前端页面上传入口静态页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/uploadFile" method="post" enctype="multipart/form-data">
<input type="file" name="multipartFile">
<input type="submit" value="提交">
</form> </body>
</html>
Springboot文件上传代码笔记的更多相关文章
- 补习系列(11)-springboot 文件上传原理
目录 一.文件上传原理 二.springboot 文件机制 临时文件 定制配置 三.示例代码 A. 单文件上传 B. 多文件上传 C. 文件上传异常 D. Bean 配置 四.文件下载 小结 一.文件 ...
- Springboot文件上传与下载
一.创建简单的springboot-web项目 二.文件上传属性配置 #默认支持文件上传 spring.http.multipart.enabled =true spring.http.multipa ...
- servlet3.0获取参数与文件上传代码示例
转: servlet3.0获取参数与文件上传代码示例 2018年08月26日 20:25:35 苏凯勇往直前 阅读数:98 package com.igeek.servlet; import ...
- php文件上传代码解析
php文件上传代码解析 is_uploaded_file() //函数判断指定的文件是否是通过 HTTP POST 上传的,返回一个布尔值. $_FILES['upfile']['tmp_name' ...
- springboot 文件上传和下载
文件的上传和下载 1.文件上传 html页面代码如下 <form method="post" action="/file/upload1" enctype ...
- 【SpringBoot】07.SpringBoot文件上传
SpringBoot文件上传 1.编写html文件在classpath下的static中 <!DOCTYPE html> <html> <head> <met ...
- SpringBoot学习笔记(8)-----SpringBoot文件上传
直接上代码,上传文件的前端页面: <body> <form action="/index/upload" enctype="multipart/form ...
- SpringBoot 文件上传临时文件路径问题
年后放假回来,一向运行OK的项目突然图片上传不了了,后台报错日志如下: java.io.IOException: The temporary upload location [/tmp/tomcat. ...
- springboot 文件上传大小配置
转自:https://blog.csdn.net/shi0299/article/details/69525848 springboot上传文件大小的配置有两种,一种是设置在配置文件里只有两行代码,一 ...
随机推荐
- ArcCore重构-头文件引用问题的初步解决
基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5 基本问题 1. 头文件引用混乱,所有头文件通过从搜索路径(-I)中引用,存在名称污染问题,需加入路径信息: ...
- ArcticCore重构-问题列表1
基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5 基本问题 Arctic Core中的代码组织有很多有待改进的地方,这里先提出几点: 1. 头文件引用混乱,所有头文 ...
- 再探Circuit Breaker之使用Polly
前言 上一篇介绍了使用Steeltoe来处理服务熔断,这篇我们将用Polly来处理服务熔断. 不废话了,直接进正题. 简单的例子 同样先定义一个简单的服务. [Route("api/[con ...
- hibernate多表查询封装实体
以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hibernate要实现多表联合查询的时候还楞了一下.最后看了下资料,才恍然大悟,hibernate实现多表联合查询跟SQ ...
- VC++中字符串编码处理的一些相关问题
前言 什么是tchar? 百度百科对其的定义如下": 因为C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包 ...
- Nginx安装及配置
Nginx是一款速度快,功能强大的http以及反向代理服务器,经过简单的配置之后即可以用来托管页面. 不幸的是,和很多其他系统管理工具一样,相关的原理教程和配置说明文档都很少.虽然官方提供了一个wik ...
- Tiny4412之蜂鸣器驱动与led灯驱动
一:LED驱动编写 要编写LED驱动,首先的知道开发板的构造:开发板分为核心板与底板:编写驱动的第一步就是要看开发板,找到LED灯在开发板上的位置及所对应的名字:第一步就要查看核心板电路图,以及底板电 ...
- ngnix 是什么
Nginx系列(一)--nginx是什么? 发表于2015/7/1 7:57:58 14347人阅读 分类: Nginx Java 一.介绍 Nginx是一个高性能的HTTP和反向代理服务器,也是一 ...
- Jmeter4.0分布式测试时启动Jmeter.server时报错
最近又开始研究Jmeter,将新版本4.0下载下来体验,准备远程分布式测试,又出现一些问题,废话不多说,直入主题把! Windows 系统启动Jmeter 4.0的JmeterServer.ba ...
- 为什么选择Spring Boot作为微服务的入门级微框架
摘要:1. Spring Boot是什么,解决哪些问题 1) Spring Boot使编码变简单 2) Spring Boot使配置变简单 3) Spring Boot使部署变简单 4) Spring ...