무소의 뿔처럼

이미지 업로드 Blob? varchar2? 본문

JSP/JSP 홈피 만들어보기_게시판

이미지 업로드 Blob? varchar2?

값을변경 2022. 2. 4. 15:03

 


DB 테이블 만들 때 무조건 BLOB를 써야 하는 줄 알았다.

DB: varchar2 / java: String 

 

HTML에 파일 업로드를 만들어 놓고

<form action="imgup.jsp" method="post" enctype="multipart/form-data">

	<input type="file" name="fileUP" accept="image/png, image/jpeg">
    
</form>

imgup.jsp으로 form data 보냄
enctype을 multipart/form-data을 명시하고 method="post"도 따라감.
   *구글링 해보니 multipart일 경우 post로 보내야 한다고 함.
image를 올리되 확장자가 png, jpeg만 가능. ( image/* )

method="get"일때 : MultipartRequest에서 예외 발생

 

DB에 칼럼 만듦

create table img_tbl (
	file varchar2(20),
    realfile varchar2(20)
    );

file : 이용자가 업로드한 파일 이름
realfile : 서버에 저장된 파일 이름
  * 만약 이용자가 업로드한 파일(file)과 서버에 저장된 이름이 같을 때, 파일 이름을 다르게 저장함.(realfile)

 

java에 DTO 만듦

public class imgDTO {

private String File;
private String RealFile;

	public String getFile() {
		return File;
	}
	public void setFile(String File) {
		this.File = File;
	}
	public String getRealFile() {
		return RealFile;
	}
	public void setRealFile(String RealFile) {
		this.RealFile = RealFile;
	}
}

 


프로젝트 webapp에 업로드 파일을 담을 folder를 만듦

실제 업로드 이미지 파일이 있는 곳은
작업 중인 프로젝트 파일이 있는 곳으로 찾아가서 (c:\project\jsp)
.metadata  >  .plugins  >  org.eclipse.wst.server.core  >  tmp0  >  wtpwebapps 
여기까지 가면 자신의 프로젝트명의 폴더가 있을 것임 - 업로드 폴더에 가보면 이미지가 보임!
   *같은 이름의 파일을 계속 올렸을 경우 파일명이 다르게 저장된 것을 알 수 있음

 

 

업로드에서 DB까지 이미지는 '파일명'으로 이동.

실체는 지정된 폴더에 저장.

 

 

Comments