欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识
原文出处: oKong

媒介

上一章节,我们讲授了操作模版引擎实现前端页面渲染,从而实现动态网页的成果,同时也提出了兼容jsp项目标办理方案。既然开始讲授web开拓了,劳务派遣管理系统昆山软件开发,我们就接着继承往web这个偏向继承吧。凡是,我们在做web开拓时,遇见诸如附件上传、图片头像上传等文件的上传需求也是再正常不外的。那么,我们本日我们就来讲讲SpringBoot文件上传的成果的实现。

一点常识

我们知道,前端上传文件时,最常见的就是操作Form表单的方法举办文件的上传成果了,上传时配置enctypemultipart/form-data,可能直接操作jquery的一些上传插件实现。尔后端,在jsp+Servlet时代,最常见的就是操作smartupload上传组件。而在SpringMvc时代,其提供了MultipartFile封装类,它包括了文件的二进制流和文件相关属性(文件名、巨细等)。所以在SpringBoot中也是利用此封装类举办文件上传的。

文件上传

上面说到,springmvc中是操作MultipartFile举办文件上传的。而MultipartFile是个接口类,它的实现类有CommonsMultipartFileStandardMultipartFile。这里简朴说明下:


StandardMultipartFile:是基于j2ee自带的文件上传举办理会,纵然用Servlet3.0提供的javax.servlet.http.Part上传方法。

CommonsMultipartFile:是基于apache fileupload的理会。


所以正常我们利用时,也是无需干系底层是以哪种方法举办文件上传处理惩罚的,SpringMvc会给我们做相应的转换的。

这里演示下两种方法。

基于J2EE自带方法

这种方法下,其实无需任何设置。只需按正常的web开拓项目集成即可。

0.pom依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

1.设置文件(可选),正常只需要配置上传的文件巨细

# 最大支持文件巨细 即单个文件巨细
spring.http.multipart.max-file-size=1Mb
# 最大支持请求巨细 即一次性上传的总文件巨细
spring.http.multipart.max-request-size=10Mb

其他的设置,可直接参考官网的设置信息:https://docs.spring.io/spring-boot/docs/1.5.15.RELEASE/reference/htmlsingle/#common-application-properties
其他设置

2.编写节制类

FileUploadController.java:

@RestController
@Slf4j
public class FileUploadController {

	@PostMapping("/upload")
	public String upload(@RequestParam MultipartFile file) throws IllegalStateException, IOException {
		// 判定是否为空文件
		if (file.isEmpty()) {
			return "上传文件不能为空";
		}
		// 文件范例
		String contentType = file.getContentType();
		// springmvc处理惩罚后的文件名
		String fileName = file.getName();
		log.info("处事器文件名:" + fileName);
		// 原文件名即上传的文件名
		String origFileName = file.getOriginalFilename();
		// 文件巨细
		Long fileSize = file.getSize();

		// 生存文件
		// 可以利用二进制流直接生存
		// 这里直接利用transferTo
		file.transferTo(new File("d://okong-" + origFileName));

		return String.format(file.getClass().getName() + "方法文件上传乐成!\n文件名:%s,文件范例:%s,文件巨细:%s", origFileName, contentType,fileSize);

	}
}

3.启动应用,然后利用postman举办api挪用即可,虽然各人也可以操作上节课进修的模版引擎技能,编写一个文件上传的表单。

J2EE方法

基于FileUpload包方法

本来在Springmvc时,我们凡是都是利用CommonsMultipartResolver举办文件上传处理惩罚类设置的,好比最大上传文件巨细的。而基于在SpringBoot下,略微有些差异。

0.pom插手fileUpload依赖

<dependency>
	<groupId>commons-fileupload</groupId>
	<artifactId>commons-fileupload</artifactId>
	<version>1.3.3</version>
</dependency>

1.编写一个设置类
FileUploadConfig.java

@Configuration
public class FileUploadConfig {
	
	@Bean
	public MultipartResolver custom() {
		return new CommonsMultipartResolver();
	}
}