본문 바로가기

전체 글

(87)
[Spring] 스프링으로 파일 업로드, 다운로드 구현하기 (3) - DB까지 사용하여, 실제로 파일 업로드와 다운로드 해보기 지금까지는 업로드에 대해서 알아보았다. 실제 DB에도 저장하지 않았다. 실제로 파일을 업로드, 다운로드 하기 위해서는, 파일의 내용을 저장하는 DB까지 필요하다. 이제, 실제 예시를 통해 파일 업로드와 파일 다운로드 방법을 알아보자. [개념] 파일 업로드란? 파일 업로드라는 것이 파일을 바이너리 데이터로 만들어서 DB에 넣어둔다는 뜻이 아니다. 비싼 저장장치인 DB를 이미지 저장소로 사용하지는 않는다. 우리는 DB에 파일의 정보(파일 이름, 파일이 서버에 저장되었을 때의 이름, 컨텐트 타입, 등록 날짜, 수정 날짜 등등)만을 저장할 것이다. 파일이라는 데이터 그 자체는, 서버에 올라가게 된다(현재는 작업을 로컬에서 진행하므로, 내 로컬 저장소(하드디스크)가 그 역할을 하게 된다) 정리하자면 파일 업로드란..
[Spring] 스프링으로 파일 업로드, 다운로드 구현하기 (2) - multipartFile 이용하기 김영한님 강의에서는 서블릿으로 파일을 전송하는 방법을 설명한 후에, 스프링으로 파일을 전송하는 방법에 대해 설명한다. 결국 스프링으로 파일을 전송하는 것을 사용하므로, 이에 대해서만 소개하겠다. 스프링은 메서드의 파라미터로 MultipartFile 타입을 지정하면, 파일을 받을 수 있도록 만들어두었다. 아래의 코드를 보면, 빠르게 이해할 수 있다. @Value("${file.dir}") private String fileDir; // 파일을 저장할 경로. 해당 경로에 폴더가 만들어져 있어야 한다. @PostMapping("/upload") public String saveFile(@RequestParam String itemName, // MultipartFile로 file을 전송받기 @RequestPa..
[Spring] 스프링으로 파일 업로드, 다운로드 구현하기 (1) - multipart/form-data란 무엇인가? 스프링은 HTML Form을 이용해 서버로 데이터를 전송하게 된다. HTML Form 전송방식에는 2가지가 있는데, 다음과 같다. application/x-www-form-urlencoded multipart/form-data 1번은 서버로 데이터를 전송하는 가장 기본적인 방법이다. Form으로 데이터를 전송할 때(post요청) 별도의 enctype 옵션이 없으면 웹 브라우저는 요청 HTTP 메시지의 Header에 [ Content-Type: application/x-www-form-urlencoded ] 를 추가한다. 그 다음, Body에 폼에 입력한 전송 데이터를 문자로 username=kim&age=20 와 같이 &로 구분하여 전송하게 된다. 2번은 파일을 업로드 할 때 사용하는 방식이다. 파일은,..