/**
 * ÀÌ ¼Ò½º´Â Spring ÇÁ·¹ÀÓ¿öÅ© ¿öÅ©ºÏ¿¡¼­ »ç¿ëÇÑ ¿¹Á¦ ¼Ò½ºÀÔ´Ï´Ù. 
 * ÀÌ ¼Ò½º´Â ¸ðµç °³¹ßÀÚµéÀÌ ÀÚÀ¯·Ó°Ô ¼öÁ¤ ¹× ¹èÆ÷ÇÒ ¼ö ÀÖ½À´Ï´Ù. 
 * ´Ü, ÀÌ ¼Ò½º¸¦ ±â¹ÝÀ¸·Î »õ·Î¿î ¾ÖÇÃ¸®ÄÉÀÌ¼ÇÀ» °³¹ßÇÒ °æ¿ì ÃâÃ³¸¦ ¸í½ÃÇØ ÁÖ½Ã¸é µË´Ï´Ù. 
 */
package net.javajigi.board.web;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import net.javajigi.board.model.BoardFile;
import net.javajigi.common.util.FileUploadUtil;

import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.mvc.SimpleFormController;

/**
 * ÁÖ¼®À» ³Ö¾î ÁÖ¼¼¿ä. ¹è°¡ °íÆÄ¿ä.
 * 
 * @author ¹ÚÀç¼º(ÀÚ¹ÙÁö±â, javajigi@gmail.com)
 */
public class BaseBoardFormController extends SimpleFormController {
    private String realUploadPath = null;

    public void setRealUploadPath(String realUploadPath) {
        this.realUploadPath = realUploadPath;
    }

    protected List getBoardFileList(HttpServletRequest request) {
        MultipartHttpServletRequest mpRequest = (MultipartHttpServletRequest) request;
        Iterator fileNameIterator = mpRequest.getFileNames();

        List boardFileList = new ArrayList();
        while (fileNameIterator.hasNext()) {
            MultipartFile multiFile = mpRequest
                    .getFile((String) fileNameIterator.next());

            if (multiFile.getSize() > 0) {
                BoardFile boardFile = FileUploadUtil.uploadFormFile(multiFile,
                        realUploadPath);
                boardFileList.add(boardFile);
            }
        }

        return boardFileList;
    }
}
