接下来我将为您详细讲解如何使用Java MultipartFile实现上传文件/上传图片的完整攻略。
什么是Java MultipartFile
MultipartFile
是Spring框架内置的一个接口,用于处理HTTP的多部分请求,用于上传文件/上传图片,它可以用于处理在表单中上传的文件,支持大文件上传和多文件上传。
实现上传文件/上传图片的完整攻略
下面是使用Java MultipartFile实现上传文件/上传图片的完整攻略。
1. 添加依赖
在POM.xml
中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--文件上传依赖-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
2. 新建一个上传文件的Controller
@RestController
@RequestMapping("/upload")
public class UploadController {
/**
* 文件上传
*
* @param multipartFile
* @return
*/
@PostMapping("/file")
public String uploadFile(@RequestParam("file") MultipartFile multipartFile) {
if (multipartFile.isEmpty()) {
return "上传文件不能为空!";
}
try {
// 获取文件名
String fileName = multipartFile.getOriginalFilename();
// 获取文件后缀
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
// 设置文件上传路径
String filePath = "/data/upload/";
File dest = new File(filePath + fileName);
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
// 保存文件
multipartFile.transferTo(dest);
return "文件上传成功!";
} catch (IOException e) {
e.printStackTrace();
}
return "文件上传失败!";
}
/**
* 图片上传
*
* @param multipartFile
* @return
*/
@PostMapping("/image")
public String uploadImage(@RequestParam("file") MultipartFile multipartFile) {
if (multipartFile.isEmpty()) {
return "上传图片不能为空!";
}
try {
// 获取图片名
String imageName = multipartFile.getOriginalFilename();
// 获取图片后缀
String suffix = imageName.substring(imageName.lastIndexOf(".") + 1);
// 允许上传的图片后缀
List<String> allowSuffix = Arrays.asList("jpg", "jpeg", "png", "bmp", "gif");
if (!allowSuffix.contains(suffix)) {
return "只允许上传后缀为jpg、jpeg、png、bmp、gif的图片!";
}
// 设置上传图片的路径
String imagePath = "/data/upload/image/";
File imageFile = new File(imagePath + imageName);
if (!imageFile.getParentFile().exists()) {
imageFile.getParentFile().mkdirs();
}
// 保存图片
multipartFile.transferTo(imageFile);
return "图片上传成功!";
} catch (IOException e) {
e.printStackTrace();
}
return "图片上传失败!";
}
}
3. 测试上传文件/上传图片
我们使用Postman对上面Controller中的uploadFile
和uploadImage
接口进行测试,可以上传任意的文件和图片。下面是上传文件的两条示例。
示例1:上传本地的test.txt
文件
请求类型:POST
请求地址:http://localhost:8080/upload/file
请求Header:无
请求Body:
Key: file
Value: 测试文件.txt
返回结果:
文件上传成功!
示例2:上传本地的test.jpg
图片
请求类型:POST
请求地址:http://localhost:8080/upload/image
请求Header:无
请求Body:
Key: file
Value: 测试图片.jpg
返回结果:
图片上传成功!
以上就是使用Java MultipartFile实现上传文件/上传图片的完整攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java MultipartFile实现上传文件/上传图片 - Python技术站