fileupload를 이용하여 파일 업로드

1959 단어 servlet
두 개의jar 패키지를 도입해야 합니다:commons-fileupload-1.2jar와commons-io-1.3.2.jar
폼을 servlet에 제출하여 처리하는 것을 예로 들 수 있습니다.
파일 필드가 포함된 form은 다음과 같습니다.
enctype="multipart/form-data"
STEP1:
업로드 어셈블리 서브렛 파일 업로드를 구성하는 데 사용되는 하드 디스크 파일 팩토리를 인스턴스화합니다.
DiskFileItemFactory factory = new DiskFileItemFactory();
STEP2:
파일을 업로드할 때 임시로 저장할 메모리 크기(예: 4K)를 설정합니다. 더 많은 부분은 하드디스크에 임시로 존재합니다.
factory.setSizeThreshold(4 * 1024);
STEP3:
임시 파일을 저장할 디렉토리 설정
factory.setRepository(new File (임시 파일 디렉터리의 절대 경로);
STEP4:
상기 공장 실례화로 구성 요소 업로드
ServletFileUpload upload = new ServletFileUpload(factory);
STEP5:
10M의 경우 최대 업로드 크기 설정
upload.setSizeMax(10 * 1024 * 1024);
그리고 Request에서 모든 업로드 영역의 목록을 가져옵니다
List fileItemList = upload.parseRequest(request);
업로드된 모든 파일 가져오기
Iterator fileItemIt  = fileItemList .iterator();
모든 파일 루프
while (fileItemIt.hasNext()) {
    FileItem fileItem = (FileItem) fileItr.next();
    fileItem:
    1. 파일 도메인 판단: isFormField()
    2.파일의 전체 경로: getName()
    3.파일 크기: getSize()
업로드된 파일을 저장하려면 다음과 같이 하십시오.
    fileItem.write(새 파일의 절대 경로);
}
제출한form이 다른 영역(예를 들어 >>>>> 2011 - 06 - 11 업데이트:
 
Apache Commons File Upload로 파일을 업로드할 때 중국어 난자 문제가 발생할 수 있습니다. 가져온 파일 경로나 파일 이름이 난자일 수도 있고 가져올 수 있는 폼 필드가 난자일 수도 있습니다. UTF-8 인코딩을 예로 들면 다음과 같습니다. File Upload를 호출합니다.settingHeaderEncoding ("UTF-8") 은 경로나 파일 이름이 부호화되는 문제를 해결할 수 있습니다.필드 값을 가져올 때 FileItem을 사용합니다.getString ("UTF-8"), 이 설정은 가져오는 폼 필드가 부호화되는 문제를 해결할 수 있습니다.
request.setCheracterEncoding("utf-8");
DiskFileUpload.setHeaderEncoding("utf-8");
FileItem.getString("utf-8");

좋은 웹페이지 즐겨찾기