개발로드

☆KDT 2024-03-21★File업로드 연습 본문

JAVA

☆KDT 2024-03-21★File업로드 연습

위대한개발자 2024. 3. 26. 16:18

이 코드는 Java 웹 어플리케이션에서 파일 업로드를 다루는 데 사용되는 @MultipartConfig 어노테이션을 설정하는 것입니다. 이 어노테이션은 javax.servlet.annotation 패키지에 속해 있습니다.

여기서 각각의 속성들은 다음과 같습니다:

fileSizeThreshold: 파일이 디스크로 저장되기 전에 메모리에 유지되는 임계치를 나타냅니다. 이 값은 바이트 단위로 설정됩니다. 파일이 이 임계치보다 크면 디스크로 저장됩니다. 여기서는 1MB로 설정되어 있으므로, 1MB보다 큰 파일은 디스크로 저장됩니다.


maxFileSize: 업로드할 수 있는 개별 파일의 최대 크기를 나타냅니다. 이 값은 바이트 단위로 설정됩니다. 여기서는 5MB로 설정되어 있으므로, 개별 파일의 크기가 5MB를 초과하면 업로드가 실패합니다.


maxRequestSize: 요청의 최대 크기를 나타냅니다. 이 값은 요청 전체의 크기로, 모든 파일 및 기타 데이터를 포함합니다. 바이트 단위로 설정됩니다. 여기서도 5MB로 설정되어 있으므로, 요청 전체 크기가 5MB를 초과하면 업로드가 실패합니다.


따라서 이 어노테이션은 파일 업로드에 대한 제약 조건을 설정하여 웹 어플리케이션에서 발생할 수 있는 잠재적인 문제를 방지합니다.

 

이 코드는 웹 애플리케이션 컨텍스트 내에서 "upload"라는 디렉터리에 대한 실제 경로를 검색합니다. 각 부분에 대한 분석은 다음과 같습니다.

request: 서버에 대한 클라이언트의 요청을 나타내는 HttpServletRequest의 인스턴스입니다. 여기에는 매개변수, 헤더, 기타 데이터 등 요청에 대한 정보가 포함됩니다.


request.getServletContext(): 현재 웹 애플리케이션과 연관된 ServletContext를 검색합니다. 'ServletContext'는 리소스, 매개변수 및 기타 컨텍스트 관련 정보에 액세스하는 방법을 포함하여 서블릿이 웹 컨테이너와 상호 작용하는 방법을 제공합니다.


getRealPath("/upload/"): ServletContext에서 호출되는 이 메소드는 웹 애플리케이션 내에서 지정된 가상 경로에 해당하는 실제 파일 시스템 경로를 반환합니다. 이 경우 웹 애플리케이션 컨텍스트 내의 "업로드" 디렉터리에 대한 실제 경로를 반환합니다. "/upload/" 인수는 디렉토리에 대한 가상 경로를 지정합니다. 이 경로는 웹 애플리케이션의 루트에 상대적입니다.


String realPath = ...: getRealPath() 메소드에서 얻은 실제 경로를 realPath 변수에 할당합니다. 이제 realPath 변수에는 "업로드" 디렉터리에 대한 실제 파일 시스템 경로가 포함됩니다.


요약하자면, 이 코드는 일반적으로 웹 애플리케이션 컨텍스트 내의 디렉토리에 대한 실제 파일 시스템 경로를 얻기 위해 서블릿 또는 JSP 파일에서 사용됩니다. 그런 다음 이 경로를 사용하여 업로드된 파일을 지정된 디렉터리 내의 디스크에 저장하는 등의 작업을 수행할 수 있습니다.

 

콘솔에 찍히는 경로