
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.