본문 바로가기
✨ Back-end/Spring-Boot

[Spring] 쇼핑몰 - 20 상품 이미지 등록 UploadUtil 클래스

by 환풍 2023. 3. 30.
728x90
반응형

 

 

아주 간단하게 컨트롤러에서 코드 한줄로 이미지 등록을 해볼 것이다.

UploadUtil 클래스

util 패키지를 생성해서 UploadUtil 클래스를 만들어 준다.

이후 uploadFile 메소드와 multiFileUpload 메소드를 만들어 주면서 위 코드는 main이미지, 밑 코드는 sub이미지 코드이다.

메소드의 기본 성질은 default로 같은 패키지가 아니면 공유를 하지 않는다.

그래서 static을 이용해 다른 패키지에서도 사용할 수 있도록 붙여줘야한다. 

AdminController 컨트롤러

컨트롤러에서 UploadUtil 클래스에 있는 메소드 uploadFile과 multiFileUpload 메소드를 불러와 변수를 넣어주면 단 두줄만에 이렇게 컨트롤러에서 이미지 첨부를 할 수 있게 된다.

 

reg_item.html 

 

 

 UploadUtil 클래스 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.study.shop.util;
 
import java.io.File;
import java.util.UUID;
 
import org.springframework.web.multipart.MultipartFile;
 
public class UploadUtil {
    // 단일 파일 업로드 메소드
    
    public static void uploadFile(MultipartFile img) {
        if(!img.isEmpty()) {
            String originFileName = img.getOriginalFilename();
            String uuid =UUID.randomUUID().toString();
            String extension = originFileName.substring(originFileName.lastIndexOf("."));
            String attachedFileName = uuid +  extension;
            
            try {
                File file = new File(ConstVariable.UPLOAD_PATH + attachedFileName);
                img.transferTo(file);
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    // img는 실제로 첨부되는 파일 MutipartFile이 자료형
    
    //다중 파일 업로드 메소드
    public static void multiFileUpload(MultipartFile[] imgs) {
        for( MultipartFile img : imgs) {
            uploadFile(img);
        }
    }
}
 
cs

이걸 끌어다 쓴 것이다.

728x90
반응형

댓글