java文件导入前端使用form-data,怎么把文件加入白名单,不做校验
时间: 2024-01-09 16:03:29 浏览: 66
java map转Multipart/form-data类型body实例
Java的文件上传可以使用Spring框架中的MultipartFile来处理。在处理上传文件时,可以通过设置文件后缀名的白名单来进行文件类型的过滤。
在Spring中,可以通过在MultipartResolver中设置文件大小、文件数量、文件类型等限制条件来实现文件上传的白名单。具体实现如下:
```java
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Iterator;
public void upload(HttpServletRequest request) throws IOException {
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
// 设置上传文件的大小限制,单位为字节
commonsMultipartResolver.setMaxUploadSize(10485760);
// 设置上传文件的数量限制
commonsMultipartResolver.setMaxUploadSizePerFile(1048576);
// 设置上传文件的类型限制
commonsMultipartResolver.setAllowedFileExtensions(new String[]{"jpg", "png", "gif"});
if (commonsMultipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;
Iterator<String> iterator = multipartHttpServletRequest.getFileNames();
while (iterator.hasNext()) {
String fileName = iterator.next();
MultipartFile multipartFile = multipartHttpServletRequest.getFile(fileName);
// 处理上传的文件
}
}
}
```
在上面的代码中,我们首先创建一个CommonsMultipartResolver对象,然后设置上传文件的大小、数量和类型限制。最后,使用isMultipart方法判断当前请求是否为文件上传请求,如果是,则获取上传文件的MultipartFile对象,并进行处理。
在setAllowedFileExtensions方法中,我们设置了允许上传的文件类型为jpg、png和gif三种类型,其他类型的文件将被拒绝上传。如果需要添加其他类型的文件,可以在数组中添加相应的文件后缀名即可。
阅读全文