Class GlueMultipartRequest
java.lang.Object
com.poscoict.glueframework.web.control.GlueMultipartRequest
GlueMultipartRequest는 form이 multipart/form-data 인경우 생성된다.
GlueMultipartRequest를 Default 생성자로 생성한다. 최대 Size는 100Mbyte이다.
GlueMultipartRequest를 Default 생성자로 생성한다. 최대 Size는 100Mbyte이다.
File Upload Size 변경 방법 1: glue.properties에 다음과 같이 선언. 단, Integer.MAX_VALUE 가 상한값임. max.upload.file.size=1000000000 이 size를 넘으면 connection error를 발생하게 된다. 2: GlueAbstractAction, GlueAbstractController 을 상속받아서 구현 reqeust.setAttribute(GlueWebConstants.MAXUPLOADSIZE,"1000000000"); 이 GlueMultipartRequest는 Glue F/W에서 생성 하여 주며 Web이 아닌 Non Web 프로그램에서는 사용할 수 없다. 사용 방법은 다음과 같다. GlueMultipartRequest mReq = ctx.getMultiPartRequest(); if(mReq != null) { File f = getFile("a.txt"); } 대용량 File Upload 적용 방법 대용량 File의 경우 WAS의 Memory Size에 제약을 받는다. 예를 들어 WAS의 Memory를 100MB로 하였다고 한다면 100MB 보다 큰 File은 Upload를 하지 못하게 된다. 이런경우 대용량 File을 적용하여야 한다. 대용량 File 적용 방법: - JAVA Option 설정 (필수) : "-Dfile.bigsize=true" - JAVA Option 설정 (선택) : "-Dtemp.bigfile.path=임시파일의 절대경로" 대용량 File을 임시 파일로 먼저 저장하여 사용하게 된다. 동일 파일명에 대해서 임시 파일은 overwrite 된다 (since ver.4.2.9) 제약 사항: - 기존 byte [] 형태로 File의 Contents를 받아 처리 하던 Logic은 더이상 사용 될 수 없다. - 해당 Method List : public byte[] getFileContent(String fileName) public byte[] getFileContentByInputName(String inputName) public byte[][] getMultiFilesContentByInputName(String inputName) public String toStringFileContent(String fileName)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void
File 을 Copy 한다.getFileContentsForHuge
(String fileName) HTTP Request Stream에서 읽어 들인 파일의 컨텐츠를 Return 한다.File 명을 탐색하기 위한 Iterator를 반납한다.getInputStream
(String fileName) 메모리에 캐쉬하고 있는 파일의 내용을 InputStream형태로 반환한다.파일을 Server상의 지정된 업로드 디렉토리에 저장한다.void
setTargetDirectory
(String path) Upload된 File들을 저장하길 원할때 사용한다.
-
Constructor Details
-
GlueMultipartRequest
생성자(constructor). Internal Use Only. GlueMultipartRequest를 Default 생성자로 생성한다. 최대 Size는 100Mbyte이다. 만일 이 이상의 File Size를 Upload 해야 한다면 GlueAbstractAction을 상속받아서 beforeExecute()에서 다음과 같이 구현 하여야 한다.(단위는 byte)방법 1: glue.properties에 다음과 같이 선언 max.upload.file.size=1000000000 방법 2: 다음과 같이 구현 reqeust.setAttribute(GlueWebConstants.MAXUPLOADSIZE,"1000000000");
- Parameters:
request
- HTTP Request- Throws:
Exception
- Request를 parsing 하는 도중 에러가 발생되면 throw 된다.
-
-
Method Details
-
setTargetDirectory
Upload된 File들을 저장하길 원할때 사용한다.
만일 File을 저장 할 것이라면 반드시 이 Method를 호출하여야 한다.
사용 방법은 다음과 같다.기본적으로 Web 환경에서 다음 2개 Action Class가 사용된다면 setTargetDirectory()가 실행된다. mReq.setTargetDirectory("/upload/chain/"); mReq.saveFile("a.txt"); 위 예에서 만일 mReq.setTargetDirectory()를 먼저 실행하지 않았다면 Error가 발생된다.
- Parameters:
path
- String File을 저장할 Directory 명- Throws:
IllegalArgumentException
- Directory의 권한 및 잘못된 경로
-
getParameterMap
-
getFileNames
File 명을 탐색하기 위한 Iterator를 반납한다.- Returns:
- Iterator
-
getInputStream
메모리에 캐쉬하고 있는 파일의 내용을 InputStream형태로 반환한다.- Parameters:
fileName
- 파일명- Returns:
- 파일 내용의 InputStream형 개체
-
getFileContentsForHuge
HTTP Request Stream에서 읽어 들인 파일의 컨텐츠를 Return 한다. File의 Contents는 대용량 File 옵션을 적용한 경우에는 File을 return하고 그렇지 않은 경우에는 byte []를 return 한다- Parameters:
fileName
- 파일명- Returns:
- file Contents
- Throws:
Exception
-
copyFile
File 을 Copy 한다.- Parameters:
input
- fileoutput
- file
-
saveFile
파일을 Server상의 지정된 업로드 디렉토리에 저장한다.- Parameters:
fileName
- 저장하고자 하는 파일명- Returns:
- 저장된 파일의 java.io.File 객체
- Throws:
Exception
- FileNotFoundException 파라미터로 넘어온 파일명이 존재하지 않을때 발생된다. Exception 파일 저장중 오류가 났을때 발생된다.
-