html
<form method="post" action="write" enctype="multipart/form-data">
<input type='file' id="imgs" name="test[]" accept="image/*" multiple/>
</form>
@WebServlet("/write")
public class BoardWriteController extends HttpServlet{
private BoardMapper mapper;
public BoardWriteController() {
mapper = MyAppSqlConfig.getSqlSession().getMapper(BoardMapper.class);
}
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
String uploadPath = "C:/Program/java/upload";
SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd/HH");
String datePath = sdf.format(new Date());
File file = new File(uploadPath+datePath);
if(!file.exists()) { file.mkdirs(); } // 디렉토리 생성
//mRequset 객체 생성
MultipartRequest mRequest = new MultipartRequest(arg0,
uploadPath+datePath,
1024*1024*100,
"UTF-8",
new MlecFileRenamePolicy()
);
Enumeration<String> names = mRequest.getFileNames();
while(names.hasMoreElements()) {
// attach1, attach2 . . .
String name = names.nextElement();
System.out.println(name);
File f = mRequest.getFile(name);
// db에 파일 정보를 올리는 과정
if(f != null) {
ClipFile clipFile = new ClipFile();
clipFile.setNo(board.getNo());
clipFile.setFilePath(uploadPath+datePath);
clipFile.setFileSize(f.length());
clipFile.setOriName(mRequest.getOriginalFileName(name));
clipFile.setSystemName(mRequest.getFilesystemName(name));
mapper.insertClipFile(clipFile);
}
}
arg1.sendRedirect("list");
}
}
db에 올리는 과정이 파일 이름 뽑아오는건데
그거보다
저렇게 해서
차례대로
1.jpg 첨부
2.jpg 첨부
후에 섬밋하면
실제 업로드폴더에는 2.jpg밖에 없다
업로드가 왜 하나밖에 안되는걸까?
이름으로 next가 아니라.. request에 대해 next 해야 되는것 아님 ?
https://stackoverflow.com/questions/20183295/uploading-multiple-files-using-jsp-servlets
여기 서블릿 구현부 보면 그런 느낌인데. ㅇㅇ
https://stackoverflow.com/questions/20183295/uploading-multiple-files-using-jsp-servlets
여기를 봐도 그래보이는데. ㅇㅇ
이름 부분이 중요한게 아니고 업로드 자체가 한개밖에 안됨;