글

Spring Boot 7. 파일 업로드

이미지
 Spring Boot 7. 파일 업로드 1. 설정 내장된 Tomcat을 사용 application.properties 파일에 아래 코드 추가 # 파일 업로드를 위해 코드 추가 spring.servlet.multipart.enabled = true spring.servlet.multipart.location = 파일을 업로드할 경로 spring.servlet.multipart.max-request-size = 30MB spring.servlet.multipart.max-file-size = 10MB enabled : 파일 업로드 가능 여부 location : 업로드된 파일의 입시 저장 경로 max-request-size : 한 번에 최대 업로드 가능한 용량 max-file-size : 파일 하나의 최대 크기 2. 파일 업로드 컨트롤러 준비 업로드된 파일의 처리는 컨트롤를 사용 Spring에서는 MultipartFile 타입을 제공해서 추가적인 처리 없이 바로 사용 가능 파일 업로드와 관련된 모든 작업은 Ajax 방식으로 처리 업로드 결과는 JSON 형태로 제공 controller 패키지 안에 UploadController 클래스 생성 Post 매핑으로 메소드를 생성하고 매개변수로 MultipartFile 타입의 배열을 받음 (여러 파일 업로드 가능) @RestController @Log4j2 public class UploadController { @PostMapping ( "/uploadAjax" ) public void uploadFile ( MultipartFile [] uploadFiles ) { for ( MultipartFile uploadFile : uploadFiles ) { String originalName = uploadFile. getOriginalFilename (); String fileName = originalName. substring ( ...

Django 17. 유저가 파일 업로드

이미지
 Django 17. 유저가 파일 업로드 1. 경로 설정 유저가 업로드 하는 파일의 경로는 /media/ 를 사용 루트 디렉토리 안에 media 디렉토리 사용 settings.py에 STATIC_URL 아래쪽에 코드 추가 MEDIA_URL = "media/" MEDIA_ROOT = os.path.join( BASE_DIR , "media" ) MEDIA_URL : 유저가 업로드하는 파일들을 루트 -> media 디렉토리에 업로드 되도록 설정 MEDIA_ROOT : 유저가 처음 업로드할 때 Django가 자동으로 해당 디렉토리를 생성 2. 파일 저장 필드 설정 models.py 파일에서 테이블 클래스를 정의할 때 models.ImageField() 를 이용해서 이미지 파일 컬럼 생성 * 예시 class Post ( models . Model ): title = models.CharField( "포스트 제목" , max_length = 100 ) content = models.TextField( "포스트 내용" ) image = models.ImageField( "이미지" , upload_to = "post" , blank = True ) upload_to : 이미지를 저장할 경로. root -> media -> 디렉토리 명 작성. 자동으로 디렉터리가 생성됨 blank : 해당 컬럼을 비워둘 지 여부 (True면 비워둘 수 있음) Django에서 이미지 파일을 다루기 위한 이미지 처리 라이브러리 'Pillow' 설치 pip3 install Pillow 터미널에 아래 명령어를 입력해서 결과를 DB에 반영 python3 manage.py makemigrations python3 manage.py migrate 3. 어드민 페이지에서 확인 admin 페이지 설정을 하면 어드민 페이지에서 테이블에 이...

Spring Boot 6. 계시판 프로젝트

이미지
 Spring Boot 6. 계시판 프로젝트 1. 프로젝트 구조 1:N 관계 하나의 유저는 여러개의 글을 작성할 수 있음 하나의 글에는 여러 댓글이 달릴 수 있음 3개의 테이블이 서로 참조함(user, board, reply) 2. 프로젝트 생성 - 추가 라이브러리 Spring Boot DevTools, Lombok, Spring Web, Thymeleaf, Spring Data JPA - DB 및 Thymeleaf 설정 build.gradle dependencies 안에 mariadb 드라이버 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' annotationProcessor 'org.projectlombok:lombok' providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' // 추가 implementation group : 'org.mariadb.jdbc' , name : 'mariadb-java-client' , ...