commons-fileupload-1.2.1 파일 업로드

2757 단어
servlet 3.0 이전에는 파일 업로드가 잘 안 돼서 스스로 이루어야 하는 곳이 많았다.이 시대에 우리는 모두commons-fileupload-1.2.1에 의존하여 실현되었다.servlet3.0 안에서commons-fileupload-1.2.1을 사용하지 않아도 실현하기 쉽다.그러나 본고는commons-fileupload-1.2.1을 소개하는 것이기 때문에 더 이상 말하지 않겠습니다.코드를 직접 보세요.
package com.panguso.phl.servlet;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
 *        
 * 
 * @author piaohailin
 * @date 2013-1-31
 */
public class UploadServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    //            
    private String            uploadPath       = "c:\\upload";
    private File              tempPath         = new File("c:\\upload\\temp");

    /**
     * @see HttpServlet#HttpServlet()
     */
    public UploadServlet() {
        super();
    }

    @Override
    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        request.setCharacterEncoding("UTF-8");

        //           ,                   
        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(4096);
        factory.setRepository(tempPath);

        //           ServletFileUpload  ,          
        //                 ,       
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(1024 * 1024);
        upload.setHeaderEncoding("utf-8");
        try {
            List<FileItem> fileItems = upload.parseRequest(request);
            for (FileItem fileItem : fileItems) {
                System.out.println(fileItem.getName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

http 요청에 대한 표준post 형식은 참고하십시오
http://www.cnblogs.com/frustrate2/archive/2012/11/07/2759080.html
물론 기준을 지키지 않아도 파일 업로드가 가능하다.
그러나 이것은 우아한 시대여서 표준은 여전히 더욱 환영을 받는다.

좋은 웹페이지 즐겨찾기