Spring Boot 文件上传问题 - 无法存储文件错误仅在几天后发生

问题描述

我有一个使用 Java Spring Boot 2.4.2 创建的 RESTful API。

我最近遇到的主要问题之一是,分段文件上传工作正常,但几天后相同的代码将无法工作。重新启动 RESTFul JAR 应用程序后,它将恢复工作。

Postman 中显示错误: 无法存储文件错误

相关代码在这里

try {
        FileUploadUtil.saveFile(uploadpath,file.getoriginalFilename(),file);
    } catch (IOException e) {
        throw new RuntimeException("Could not store the file. Error: " + e.getMessage());
    }

还有 FileUploadUtil 类:

public class FileUploadUtil {

public static void saveFile(String uploadDir,String fileName,multipartfile multipartfile) throws IOException {
    Path uploadpath = Paths.get(uploadDir);

    if (!Files.exists(uploadpath)) {
        Files.createDirectories(uploadpath);
    }

    try (InputStream inputStream = multipartfile.getInputStream()) {
        Path filePath = uploadpath.resolve(fileName);
        Files.copy(inputStream,filePath,StandardcopyOption.REPLACE_EXISTING);
    } catch (IOException ioe) {
        throw new IOException("Could not save uploaded file: " + fileName,ioe);
    }
}

public static File fileFor(String uploadDir,String id) {
    return new File(uploadDir,id);
}}

调用上面代码第一部分的主要POST API方法头是:

    @PostMapping(value = "/clients/details/{clientDetailsId}/files/{department}",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@PreAuthorize("hasAuthority('PERSONNEL') or hasAuthority('CUSTODIAN') or hasAuthority('ADMIN')")
public ResponseEntity<ClientDetails> createClientDetailsFiles(@PathVariable("clientDetailsId") long clientDetailsId,@PathVariable("department") String department,@RequestPart(value = "FORM_SEC_58",required = false) multipartfile[] FORM_SEC_58_file,@RequestPart(value = "FORM_SEC_78",required = false) multipartfile[] FORM_SEC_78_file,@RequestPart(value = "FORM_SEC_105",required = false) multipartfile[] FORM_SEC_105_file,@RequestPart(value = "FORM_SEC_51",required = false) multipartfile[] FORM_SEC_51_file,@RequestPart(value = "FORM_SEC_76",required = false) multipartfile[] FORM_SEC_76_file)

以及 application.properties 方面:

spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=90MB
spring.servlet.multipart.max-request-size=90MB

谁能告诉你这是什么问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)