수업정리 쿠팡#5

최동민·2022년 7월 1일
0

Spring 수업정리

목록 보기
35/47

ProductController

관리자만 업로드 할 수 있게.

IProductMapper 추가

ProductService 추가

ProductController

스키마와 테이블 생성

ImageEntity 생성

ProductController

id는 기본키라서 중복이 될 수 없다. 그래서 해싱하여 중복되지 않게 함.

ProductService

IProductMapper

xml

ProductService

ProductController

이미지 업로드 해보자.
DB 확인해보면

JSON 의존성 추가

테이블 수정

ImageEntity 수정

ProductController 수정

xml도 수정

이미지 업로드 후
디비 확인해보면

ProductController


ProductController

id를 이용해 ImageEntity를 가져온다

ProductService

IProductMapper

xml 추가

ProductService

ProductController

이미지 업로드 해보면 이제 업로드가 된다 !

사용자가(브라우저) 이미지 파일을 선택해서 업로드를 하게 되면
우린 그걸 Server에 MultipartFile로 받고 그걸 byte배열로 바꿔서 DB에 BLOB으로 집어넣는다. 그게 upload이다.

download는 BLOB을 byte배열로 바꾼 후, 그 byte배열을 응답으로 만들어 줄 친구가 ResponseEntity이다. ResponseEntity는 T타입

Content-Type : DB에서부터 나왔다
Content-Length : byte배열 길이
파일 다운로드 받을 때 다운로드 중 %뜨는 것이 보통인데, Content-Length가 없으면 그냥 1.3m 받았다만 뜸.
Content-Disposition : getFileName :
이 이름으로 다운로드를 받으세요. 없으면 이름이 그냥 download일 것.
attachment는 첨부파일이란 뜻.

ProductController에 PostAdd 추가

테이블 추가 products

ProductEntity

AddResult

AddVo

ProductService addProduct

ProductController

프로덕트 파일 다운로드/업로드 구글링 참고하기

IProductMapper insertProduct 추가

xml

keyProperty하면
setIndex 값을 레코드에 있는 인덱스 열 값으로 가져와 넣어줄 것

ProductService

add.html에 결과값 찍어주기

ProductController

업로드 해보면

리다이렉트한 주소가 찍히고

디비에도 INSERT 되는 것 확인.

1.http://localhost:8080/temp/upload 에 접속하면 파일을 선택하여 업로드 할 수 있는 페이지가 표시되게 하세요.
이때 form 한개 , input 두개 (file, submit)을 사용.

<form method="post">
  <input name="file" type="file">
  <input type="submit" value="업로드">
</form>
  1. http://localhost:8080/temp/upload 페이지에서 파일 선택 후 업로드 할 경우 'temp'.'files' 테이블에 데이터가 업로드되게 하세요.
    이때 index 값을. 파일 조회를 위한 기본 키로 한다.

  2. http://localhost:8080/temp/download?index=x 페이지를 조회할 경우 <2>에서 발생한 index값에 해당하는 x값이 있을 경우 해당 파일 다운로드(조회)를, 없다면 404(NOT_FOUND) 를 발생시키세요.
    TempFileEntity, TempController, TempService, ITempMapper, TempMapper.xml 사용

profile
코드를 두드리면 문이 열린다

0개의 댓글