간단프로젝또 8일차

jyp·2022년 12월 28일
0

프로젝또

목록 보기
8/13

enctype은 request가 안됩니당~

public void update(HttpServletRequest request) throws Exception
{
	request.setCharacterEncoding("utf-8");
	String id = request.getParameter("id");
	
	String sql = "select *from tour where id=?";
	
	PreparedStatement pstmt = conn.prepareStatement(sql);
	pstmt.setString(1, id);
	
	ResultSet rs = pstmt.executeQuery();
	rs.next();
	
	TourDto tdto = new TourDto();
	tdto.setId(rs.getInt("id"));
	tdto.setTitle(rs.getString("title"));
	tdto.setContent(rs.getString("content"));

	request.setAttribute("tdto", tdto);
	
	String[] fname = rs.getString("fname").split(",");
	
	request.setAttribute("fname", fname);
	
	
	rs.close();
	pstmt.close();
	conn.close();
}
public void update_ok(HttpServletRequest request,
HttpServletResponse response) throws Exception
{
	String path=request.getRealPath("/tour/img");
	int size = 1024*1024*10;
	MultipartRequest multi = new MultipartRequest
    (request,path,size,"utf-8",new DefaultFileRenamePolicy());
	
	// 삭제할 그림
	String[] delimg = multi.getParameter("delimg").split(",");
	for(int i=0;i<delimg.length;i++)
	{
		File file = new File(path+"/"+delimg[i]);
			if(file.exists()) // exists << 있느냐
				file.delete();
	}
	// 남겨질 그림 + 추가 그림 >> " 파일명,파일명,"이런식으로 저장할것이기 때문에 
	Enumeration enu = multi.getFileNames(); 
    // "fname1 fname2 fname3 " input type="file"의 name을 읽어온다..

	// 저장된 파일의 이름을 구하기 >> multi.getFilessystemName("fname1")
	String chuga="";
	while(enu.hasMoreElements())
	{
		chuga = chuga + multi.getFilesystemName(enu.nextElement().toString())+",";
	}
	
	chuga = chuga.replace("null," , ""); 
    // 수정 시 그림을 선택하지 않으면 null값이 오므로 null값을 없애기 위해 사용
	
	String eximg = multi.getParameter("eximg");
	
	String fname = eximg + chuga;
	
	String id = multi.getParameter("id");
	String title = multi.getParameter("title");
	String content = multi.getParameter("content");
	
	String sql = "update tour set title=?,content=?,fname=? where id=?";
	
	PreparedStatement pstmt = conn.prepareStatement(sql);
	pstmt.setString(1, title);
	pstmt.setString(2, content);
	pstmt.setString(3, fname);
	pstmt.setString(4, id);
	
	pstmt.executeUpdate();
	
	pstmt.close();
	conn.close();
	
	response.sendRedirect("content.jsp?id="+id);
	
	
}

지금 당장은 이해 잘 안되는데 일단 계속 써보면서 익혀보도록 하즈아

profile
국비 코딩

0개의 댓글