- MultipartFile接口
这个类主要是用来实现表单的形式实现文件上传的功能。
这个MulitipartFile是一个接口,继承了inputStreamSource,并且封装了getInputStream方法,返回的是inputstream类型,
这样就是通过multipartStream能够将文件转化成输入流。 - 方法介绍
1 getName() 来获取传入文件参数的名字
2 getOriginalFileName() 获取文件的完整名称,
3 getContentType() 获取文件类型
4 isEmpty判断文件是否为空
5 getBytes 判断文件大小
7 getInputStream() 获取文件输入流
8 transferTo() 用来接收文件传输给目标路径 - 前端页面代码
- 前端页面代码
body>
<form action="/files" method="POST" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="ok"/>
</form>
</body>
- 配置文件 配置页面后置和上传文件大小,
freemarker:
suffix: .html
servlet:
multipart:
max-file-size: 20MB
max-request-size: 20MB
- 后端接口
- 这个是跳转页面的
@RequestMapping("/{page}")
public String showinfo(@PathVariable String page){
return page;
}
- 注意multipartfile的参数一定要和form表单的name一致
@ResponseBody
@PostMapping("/files")
public String fileupload(@RequestParam("file")MultipartFile file) throws IOException {
System.out.println("开始执行了");
System.out.println(file.getName());
System.out.println(file.getOriginalFilename());
System.out.println(file.getSize());
System.out.println(file.getContentType());
System.out.println(file.isEmpty());
file.transferTo(new File("E:\\io\\tomcat\\"+file.getOriginalFilename()));
File file1 = new File("E:\\io\\tomcat\\" + file.getOriginalFilename());
boolean exists = file1.exists();
boolean file2 = file1.isFile();
return exists && file2?"成功":"失败";
}
- boot支持页面需要依赖
<!--freemarker启动器依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>