
public class GlueMultipartRequest extends Object
 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 and Description | 
|---|
GlueMultipartRequest(ServletRequest request)
생성자(constructor). 
 | 
| Modifier and Type | Method and Description | 
|---|---|
static void | 
copyFile(File input,
        File output)
File 을 Copy 한다. 
 | 
Object | 
getFileContentsForHuge(String fileName)
HTTP Request Stream에서 읽어 들인 파일의 컨텐츠를 Return 한다. 
 | 
Iterator<String> | 
getFileNames()
File 명을 탐색하기 위한 Iterator를 반납한다. 
 | 
InputStream | 
getInputStream(String fileName)
메모리에 캐쉬하고 있는 파일의 내용을 InputStream형태로 반환한다. 
 | 
Map<String,String[]> | 
getParameterMap()  | 
File | 
saveFile(String fileName)
파일을 Server상의 지정된 업로드 디렉토리에 저장한다. 
 | 
void | 
setTargetDirectory(String path)
Upload된 File들을 저장하길 원할때 사용한다. 
 | 
public GlueMultipartRequest(ServletRequest request) throws Exception
 방법 1: glue.properties에 다음과 같이 선언
        max.upload.file.size=1000000000
 방법 2: 다음과 같이 구현
        reqeust.setAttribute(GlueWebConstants.MAXUPLOADSIZE,"1000000000");
 request - HTTP RequestException - Request를 parsing 하는 도중 에러가 발생되면 throw 된다.public void setTargetDirectory(String path)
기본적으로 Web 환경에서 다음 2개 Action Class가 사용된다면 setTargetDirectory()가 실행된다. mReq.setTargetDirectory("/upload/chain/"); mReq.saveFile("a.txt"); 위 예에서 만일 mReq.setTargetDirectory()를 먼저 실행하지 않았다면 Error가 발생된다.
path - String File을 저장할 Directory 명IllegalArgumentException - Directory의 권한 및 잘못된 경로public Iterator<String> getFileNames()
public InputStream getInputStream(String fileName)
fileName - 파일명public Object getFileContentsForHuge(String fileName)
fileName - 파일명Exceptionpublic static void copyFile(File input, File output)
input - fileoutput - fileCopyright © 2013–2021 POSCO ICT. All rights reserved.