본문 바로가기

HTML

form태그의 enctype 속성

파일을 업로드 할때 <form>태그에서 ENCTYPE="multipart/form-data"라는 애트리뷰트를 반드시 써야 한다.

 

그렇게 하지 않으면 웹 서버로 데이터를 넘길때 파일의 경로명만 전송되고 파일 내용이 전송되지 않기 때문이다.

 

그리고 이때 METHOD 애트리뷰트에는 'POST' 값을 지정해야 한다.

 

** <form>태그의 속성인 method, action, enctype 등은 입력받은 데이터를 어떻게 처리할 것인지 세부적으로 설정하는 데 사용된다.

  method는 전송 방식,

  action은 전송 목적지,

  enctype은 전송되는 데이터 형식을 설정한다.

 

 

** enctype

enctype 속성은 다음 세가지의 값으로 지정될 수 있다.

 

1. application/www-form-urlencoded

디폴트값이다. enctype을 따로 설정하지 않으면 이 값이 설정된다. 폼데이터는 서버로 전송되기 전에 URL-Encode 된다.

 

2. multipart/form-data

파일이나 이미지를 서버로 전송할 경우 이 방식을 사용한다.

 

3. text/plain

이 형식은 인코딩을 하지 않은 문자 상태로 전송한다.



============================================================================================================

자바단에서 처리


public boolean insertProduct(HttpServletRequest req){

boolean b = false;

try {

String uploadDir = "C:\\mywork\\sou\\jsp_shopping\\WebContent\\data"; //절대 경로

// String uploadDir = "C:/mywork/sou/jsp_shopping/WebContent/data"; 유닉스방식

MultipartRequest multi = new MultipartRequest(req, uploadDir, 5 * 1024 * 1024, "utf-8", new DefaultFileRenamePolicy());

//MultipartRequest(request객체, 업로드할 절대경로, 파일크기, 인코딩방식, 보안관련)

conn = ds.getConnection();

String sql = "INSERT INTO shop_product VALUES(product_no_seq.nextval,?,?,?,SYSDATE,?,?)";

pstmt = conn.prepareStatement(sql);

pstmt.setString(1, multi.getParameter("name"));

pstmt.setString(2, multi.getParameter("price"));

pstmt.setString(3, multi.getParameter("detail"));

pstmt.setString(4, multi.getParameter("stock"));

if(multi.getFilesystemName("image") == null)

pstmt.setString(5, "ready.gif");

else

pstmt.setString(5, multi.getFilesystemName("image")); //이미지 경로를 insert할 경우

if(pstmt.executeUpdate() > 0)

b = true;

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if(rs != null)rs.close();

if(pstmt != null) pstmt.close();

if(conn != null) conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

return b;

}

'HTML' 카테고리의 다른 글

HTML5 CSS3 javascirpt 강좌  (0) 2014.04.27
HTML5 input date에 오늘 날짜 넣기  (0) 2014.04.16
html5 - sqlDB 사용하기  (0) 2014.02.14
HTML5 - 파일읽기  (0) 2014.02.14
HTML5 - 구글맵 사용하기  (0) 2014.02.14