시나리오:
파일 업로드 기능에서 오류가 보고된 후 로그를 확인하세요.
오류 로그:
임시 업로드 위치 [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT]가 유효하지 않습니다.
Linux 시스템에서 springboot 애플리케이션 서비스가 다시 시작됩니다. (java -jar 명령으로 서비스가 시작됩니다.) 운영 체제의 /tmp 디렉터리에 tomcat* 파일 디렉터리가 생성됩니다. 업로드된 파일은 먼저 임시 파일로 변환되어 이 폴더에 저장되어야 합니다.
임시 /tmp 디렉토리에 있는 파일은 장기간(10일) 동안 사용되지 않으므로 시스템 메커니즘에 의해 자동으로 삭제됩니다. 따라서 시스템이 오랫동안 임시 폴더를 사용하지 않은 경우 위와 같은 문제가 발생할 수 있습니다.
1. 임시 폴더 만들기:
mkdir -p /tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT
이 문제는 나중에 다시 발생할 수 있습니다
2.application.properties는 파일 디렉터리를 재구성한 다음 프로젝트
# 存放Tomcat的日志、Dump等文件的临时文件夹,默认为系统的tmp文件夹 server.tomcat.basedir=/data/apps/temp
3를 다시 시작합니다.
@Bean MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); factory.setLocation(tmepPath); return factory.createMultipartConfig(); }
프로젝트가 일정 기간 동안 온라인으로 실행된 후 파일을 업로드할 때 다음 예외가 발생합니다.
임시 업로드 위치 [/tmp/ tomcat.*.80 /work/Tomcat/localhost/ROOT]가 유효하지 않습니다
검색 결과 다음 해결 방법이 채택되었습니다. [임시 파일 위치 수정]
application.yml 파일에 추가
location: tempDir: /opt/location/tempDir #此处为*unix的系统相关位置
@Configuration public class MultipartConfig { @Value("${location.tempDir:/opt/tempDir}") private String tempDir; @Bean MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); File tmpDirFile = new File(tempDir); // 判断文件夹是否存在 if (!tmpDirFile.exists()) { tmpDirFile.mkdirs(); } factory.setLocation(tempDir); return factory.createMultipartConfig(); } }
위 내용은 springboot에서 임시 파일 저장 디렉터리를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!