FarmersAndFarmmunity / farmers

0 stars 0 forks source link

Enhancement 54 #56

Closed Kim-youngjae closed 1 year ago

Kim-youngjae commented 1 year ago

๐Ÿ“Œ ๊ด€๋ จ ์ด์Šˆ

closed #54

โœจ ๊ณผ์ œ ๋‚ด์šฉ

์ฃผ๋ฌธ ์ทจ์†Œ ๋ฐ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ํ•˜๋˜ ๋„์ค‘ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ƒํ’ˆ ๋“ฑ๋ก์ด ์•ˆ๋˜๋Š” ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌ

์ด๋ฏธ์ง€ ๋ฐ”์ธ๋”ฉ์ด ์ž˜๋ชป๋˜์—ˆ๊ณ , ์ƒํ’ˆ ์ด๋ฏธ์ง€ ๋“ฑ๋ก๊ณผ ๊ด€๋ จ๋œ ๋ฉ”์„œ๋“œ๊ฐ€ ์ž‘์„ฑ์ด ์•ˆ๋˜์–ด ์žˆ์—ˆ์Œ

๋ฌผ๋ก  ์ƒ์„ธ ํŽ˜์ด์ง€๋„ ์‚ฌ์ง„์ด ์•ˆ๋œจ๋Š” ์ƒํ™ฉ์ด์—ˆ๋‹ค.

ํ•ด๊ฒฐ


์ด์œ  - 1

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Value("${custom.uploadPath}")
    String uploadPath;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/images/**")
                .addResourceLocations("file://" + uploadPath);
    }
}

์ •์  ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•ด์ฃผ๋Š” WebMvcConfigurer ๋ฅผ ๊ตฌํ˜„ํ•œ WebMvcConfig ๊ฐ€ @Configuration (์„ค์ • ๊ด€๋ จ ๋นˆ) ์• ๋„ˆํ…Œ์ด์…˜์ด ์—†์–ด ์ ์šฉ์„ ๋ชปํ•ด์ฃผ๊ณ  ์žˆ์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  addResourceLocations ์œผ๋กœ ์—…๋กœ๋“œ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•ด์ค„ ๋•Œ์— ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— โ€œfile://โ€ ๋ฅผ ๊ผญ ๋ถ™์—ฌ ์ฃผ์–ด์•ผ ํ–ˆ๋‹ค.

๊ทธ๋ž˜๋„ ์‚ฌ์ง„์ด ์•ˆ ๋–ณ๋‹ค.

์ด์œ  - 2

public void saveItemImg(ItemImg itemImg, MultipartFile itemImgFile) throws Exception {
    String oriImgName = itemImgFile.getOriginalFilename();

    String imgName = "";
    String imgUrl = "";

    // ํŒŒ์ผ ์—…๋กœ๋“œ
    if (!(oriImgName == null || "".equals(oriImgName))) { // TODO: isEmpty() -> Deprecated
        imgName = fileService.uploadFile(itemImgLocation, oriImgName, itemImgFile.getBytes());
        imgUrl = "/images/item/" + imgName;
    }

    itemImg.updateItemImg(oriImgName, imgName, imgUrl);
    itemImgRepository.save(itemImg);
}

db ์— url ๊ฒฝ๋กœ๊ฐ€ ์ž˜ ์ €์žฅ ๋˜์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ž˜ ๋ถˆ๋Ÿฌ์™€ ์ง€๊ธฐ๊นŒ์ง€ ํ–ˆ๋Š”๋ฐ ์‚ฌ์ง„์ด ๋œจ์ง€ ์•Š๋Š” ์ด์œ ๋Š” ์‚ฌ์ง„ ๊ฒฝ๋กœ๋ฅผ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ๋งคํ•‘ํ•ด์ฃผ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ imgUrl = "/images/item/" + imgName; โ†’ ๊ผญ ์ œ์ผ ์•ž์— โ€œ / โ€ ๋ฅผ ๋ถ™์—ฌ์ฃผ์žโ€ฆ ์ด๋ ‡๊ฒŒ ํ•ด์•ผ ์‚ฌ์ง„์ด ์ œ๋Œ€๋กœ ๋œฌ๋‹ค.

๊ทธ ์ด์™ธ์—๋„ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๊ฐ€ ์ง€์ •์ด ์ž˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“ธ ์Šคํฌ๋ฆฐ์ƒท(์„ ํƒ)

์ƒํ’ˆ ์ด๋ฏธ์ง€๊ฐ€ ๋ฐ”์ธ๋”ฉ ๋˜์ง€ ์•Š์Œ image

๐Ÿ“š ๋ ˆํผ๋Ÿฐ์Šค (๋˜๋Š” ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ๋‚ด์šฉ) ํ˜น์€ ๊ถ๊ธˆํ•œ ์‚ฌํ•ญ๋“ค