inblog logo
|
jay0628
    SpringBoot

    [Spring Boot] 55. 사진 업로드

    김주희's avatar
    김주희
    Apr 29, 2025
    [Spring Boot] 55. 사진 업로드
    Contents
    1. multipart/form-data
    💡
    참고
    파일 데이터 전송하기 (2)
    파일 데이터 전송하기 (2)
    java - file 프로토콜 경로 정리

    1. multipart/form-data

    POST /upload HTTP/1.1 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary ------WebKitFormBoundary Content-Disposition: form-data; name="username" chatgpt ------WebKitFormBoundary Content-Disposition: form-data; name="profileImage"; filename="cat.jpg" Content-Type: image/jpeg (binary content) ------WebKitFormBoundary--
    POST /upload HTTP/1.1 Content-Type: multipart/form-data; boundary=----juminTrump ----juminTrump Content-Disposition: form-data; name="file1"; filename="image.jpg" Content-Type: image/jpeg ----juminTrump Content-Disposition: form-data; name="file2"; filename="a.png" Content-Type: image/png ----juminTrump Content-Disposition: form-data; name="username" ssar ------juminTrump Content-Disposition: form-data; Content-Type: text/plain; charset=UTF-8 1234
     
    text와 file이 동시에 보내져서 multipart
    UUID = 난수
     
    DB에는 문자와 데이터만 넣어야됨
    파일서버도 원래는 분리해야됨
     
    img file
    → DB
    → HDD
    → 다른 컴퓨터
     
     
    spring에서는 /upload/imgFile 라고하면 static 아래의 경로라고 생각
     
    @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { WebMvcConfigurer.super.addResourceHandlers(registry); registry .addResourceHandler("/upload/**") .addResourceLocations("file:./upload/") .setCachePeriod(60 * 60) // 초 단위 => 한시간 .resourceChain(true) .addResolver(new PathResourceResolver()); } }
     
    1. .addResourceHandler("/upload/**")
      1. 발동 조건
      2. static 폴더로 가려던걸 interceptor가 동작
      3. 웹서버로 못가게 막는다??
    1. .addResourceLocations("file:./upload/")
      1. file: - 파일 프로토콜
      2. 절대경로 가능 (spring에게 절대경로에 대한 권한 생김)
     
     
    MultipartFile: "입력" (요청 시 파일 수신용) String: "출력" (DB 저장 및 뷰 출력용)
    Share article

    jay0628

    RSS·Powered by Inblog