Java 多部分文件的空检查

Java 多部分文件的空检查,java,Java,我正在Spring控制器中处理两个不同的多部分文件 然后将这两个文件发送到服务以设置实体。但是,如果两个或一个都为null,则会抛出NullPointerException。如何检查这两个文件(projectImg/chartImg)是否为空 以下是我目前的代码: public void uploadImages(MultipartFile projectImg, MultipartFile chartImg, Long projectId) throws ValidationExceptio

我正在Spring控制器中处理两个不同的多部分文件

然后将这两个文件发送到服务以设置实体。但是,如果两个或一个都为null,则会抛出
NullPointerException
。如何检查这两个文件(
projectImg
/
chartImg
)是否为空

以下是我目前的代码:

public void uploadImages(MultipartFile projectImg, MultipartFile chartImg,  Long projectId) throws ValidationException, IOException {
    Project project = projectRepository.findOne(projectId);
    Project save = projectRepository.save(project);

    int maximumSizeMB = 15000000;

    if (!projectImg.isEmpty()) {
        if (projectImg.getSize() > maximumSizeMB) {
            throw new ValidationException("Image size is too big. Maximum size is 15 MB");
        }

        byte[] projectFile = ImageCompression.compressImage(projectImg);
        project.setProjectImg(projectFile);
        save.getProjectImg();
    }
    if (!chartImg.isEmpty()) {
        if (chartImg.getSize() > maximumSizeMB) {
            throw new ValidationException("Image size is too big. Maximum size is 15 MB");
        }

        byte[] chartFile = ImageCompression.compressImage(chartImg);
        project.setChartImg(chartFile);
        save.getChartImg();
    }
    projectRepository.save(project);
}

谢谢

为了让你接受一个答案,而这个问题并不是“未回答”,我将把我的评论作为一个答案发布:

你可以打电话

if (projectImg != null) { ... }
在之前还是相反

if (projectImg.isEmpty()) { ... }

检查文件是否为null的最佳方法是按以下方式使用MultipartFile
isEmpty()
方法

if(!chartImg.isEmpty()){
 // your logic here 
}else{
 // your logic here 
}


if(!projectImg.isEmpty()){
// your logic here 
}else{
 // your logic here 
}

if(projectmg!=null){}
在Spring Boot 2.1中并不总是有效

MultipartFile
总是被填充,即使它不是必需的,所以检查是否发送了可选文件的最可靠方法是

if(file.getSize() > 0)
    //file has data
对于定义为

@RequestParam(value = "file", required = false) MultipartFile file

如果(projectmg!=null)
而不是
.isEmpty()
或之前,可能?顺便说一句。
maximumSizeMB
听起来它的单位是兆字节。不过,在这种情况下,最大大小将是15 TB,这相当大。
if(null!=projectmg)
应该执行null检查,而不抛出实际工作的
NullPointerException
@FrakCool。不知道我怎么会错过这个。谢谢@很好,谢谢!这不起作用,即使文件是空的,也有一些字节为我归档了。。。也许是标题信息。接受的答案需要更新