๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ
๐ŸŒฎ Personal Project/shoppingmall service

๊ด€๋ฆฌ์ž :: ์ƒํ’ˆ ๋“ฑ๋ก (+ ์‚ฌ์ง„ ํŒŒ์ผ ๋“ฑ๋ก) (1)

by ๋ฐ”์ฟ„๋ฆฌ 2021. 9. 19.

์ด ์ „ ๊ฒŒ์‹œ๋ฌผ์„ ํ™•์ธํ•˜๋ฉด

์ƒํ’ˆ์„ ๋ฌธ์ œ์—†์ด ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฒˆ์—๋Š” ์‚ฌ์ง„์„ ๋“ฑ๋กํ•˜๋„๋ก ํ•ด์ฃผ์ž

 

์‚ฌ์ง„์„ ๋“ฑ๋กํ•˜๋ ค๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ์„ค์ •ํ•ด์•ผํ•˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ๋‹ค

์šฐ์„  application.propertise ์—์„œ ํŒŒ์ผ ์ „์†กํ•˜๋Š” ์„ค์ •์„ ํ•ด์ฃผ์ž

 

application.properties

application.propertise์—์„œ ํŒŒ์ผ์„ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก setting์„ ์™„๋ฃŒํ•ด์ฃผ์—ˆ๋‹ค.

 

๊ทธ๋Ÿผ ์ด์ œ FileController๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์ž.

 

FileController.java

์‚ฌ์ง„์„ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์ด๋‹ˆ, @PostMapping

 

์ž .. ์ด์ œ๋ถ€ํ„ฐ .. ํ—ท๊ฐˆ๋ฆฐ๋‹ค ~!~! ๋ˆˆ ์ œ๋Œ€๋กœ ๋œจ๊ณ ์š”~!~!

 

*ํŒŒ์ผ์„ ๋ณด๋‚ด๋Š”๊ฑด @RequestPart

 

*ํŒŒ์ผ์ด ์ €์žฅ๋  ํด๋”์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์ค€๋‹ค.

ํ”„๋กœ์ ํŠธ๊ฐ€ D๋“œ๋ผ์ด๋ธŒ๋‚˜ C๋“œ๋ผ์ด๋ธŒ์— ์žˆ์œผ๋ฉด

"/shopping/images"

์ด๋ ‡๊ฒŒ ์ง€์ •ํ•ด์ค€๋‹ค.

(๋‚˜๋Š” D๋“œ๋ผ์ด๋ธŒ์— shopping ํด๋”๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๊ณ , ๊ทธ ์•ˆ์— images ํด๋”๋ฅผ ์ƒ์„ฑํ•ด์ค˜์„œ

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํด๋” ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์ฃผ์—ˆ๋‹ค.)

 

** MAC ์‚ฌ์šฉ์ž์ผ ๊ฒฝ์šฐ์—๋Š”

"/Users/์•„์ด๋””/Desktop/shopping/images"

์ด๋ ‡๊ฒŒ ์ง€์ •ํ•ด์ฃผ๊ณ  ํด๋”๋Š” ๋ฐ”ํƒ•ํ™”๋ฉด์— ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

 

๋‚˜๋Š” ํ•™์›์—์„œ๋Š” ์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ ์ž‘์—…์„ ํ–ˆ๊ณ ,

์ง‘์—์„œ๋Š” ๋งฅ๋ถ์œผ๋กœ ์ž‘์—…์„ ํ•˜๋Š”๋ฐ

๊ฐ™์€ ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ๊ณ„์† ์ด์–ด๊ฐ€๋ฉด์„œ ์ž‘์—…์„ ํ•˜๋‹ค๋ณด๋‹ˆ ์ด ๊ฒฝ๋กœ๋ฅผ ์ž๊พธ ๋ฐ”๊ฟ”์ค˜์•ผํ•œ๋‹ค๋Š” ๊ฒŒ

๋„ˆ๋ฌด ํ—ท๊ฐˆ๋ฆฌ๊ณ  ๊นŒ๋จน์–ด์„œ ์• ๋ฅผ ๋งŽ์ด ๋จน์—ˆ๋‹ค.

 

ํ—ท๊ฐˆ๋ฆฌ๋‹ˆ ํ•œ ์ค„์”ฉ ๊ฐ€์ ธ์™€์„œ ์„ค๋ช…์„ ํ•ด์ฃผ์ž

 

String fileName = StringUtils.cleanPath(file.getOriginalFilename());

: StringUtils ( import org.springframework.util.StringUtils; )์˜ CleanPath ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

cleanPath๋Š” ์‚ฌ์šฉ์ž์˜ ์šด์˜์ฒด์ œ ํ™˜๊ฒฝ์ด ๊ฐ๊ธฐ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ

ํ•œ๊ฐ€์ง€ ํ‘œํ˜„ ๋ฐฉ์‹์œผ๋กœ ํ†ต์ผํ•œ๋‹ค.

 

String[] splitFileName = fileName.split("\\.");

: .์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด๋กœ ์ž๋ฅธ ํ›„ ๋ฌธ์ž์—ด ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค.

 

String ext = splitFileName[splitFileName.length-1];

: ์ž๋ฅธ ๋ฌธ์ž์—ด ์ค‘์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋ฐฐ์—ด์š”์†Œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ext ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.

 

++ ์ด ๋ถ€๋ถ„์€ ํ—ท๊ฐˆ๋ฆฌ๋‹ˆ, ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด์„œ ์„ค๋ช…์„ ํ•˜์ž

์˜ˆ๋ฅผ ๋“ค์–ด, 21.06.11.ppt ๋ผ๋Š” ํŒŒ์›Œํฌ์ธํŠธ ํŒŒ์ผ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž

splitFileName[0] = "21"

splitFileName[1] = "06"

splitFileName[2] = "11"

splitFileName[3] = "ppt"

splitFileName์˜ ๊ธธ์ด๋Š” 4์ด๋‹ค. ๊ทธ๋Ÿผ ext์—๋Š” splitFileName[3]์— ๋“ค์–ด์žˆ๋Š” ppt๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ๋œ๋‹ค.

 

String saveFileName = null;

Calendar c = Calendar.getInstance();

: ์ „์†ก ๋ฐ›์€ ํŒŒ์ผ์„ ์ €์žฅํ• ๋•Œ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์ฃผ์ž

์ด๋ฆ„์—๋Š” ๋‚ ์งœ๋ฅผ ์ง€์ •ํ•ด์ฃผ๋„๋ก ํ•ด์ฃผ์—ˆ๋‹ค.

 

saveFileName = c.getTimeInMillis()+"."+ext;

: ์ „์†ก๋ฐ›์€ ํŒŒ์ผ์˜ ์ด๋ฆ„์€ ์ „์†ก๋ฐ›์€ ์‹œ๊ฐ„์„ ms ๋‹จ์œ„๋กœ ๋ฐ”๊พผ ๊ฒƒ์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

 

์‚ฌ์šฉ์ž์˜ ์šด์˜์ฒด์ œ ํ™˜๊ฒฝ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ•œ๊ฐ€์ง€ ํ‘œํ˜„ ๋ฐฉ์‹์œผ๋กœ ํ†ต์ผํ•œ๋‹ค.

String์„ File๊ฐ์ฒด์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ Path ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

 

์ด์ œ arc๋ฅผ ํ†ตํ•ด,

ํŒŒ์ผ ์ „์†ก์ด ์ œ๋Œ€๋กœ ๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž

 

๊ท€์—ฌ์šด ๋ฆฌํŠธ๋ฆฌ๋ฒ„ ์ฐŒ๋ถ€ ์‚ฌ์ง„์„ ์„ ํƒํ•ด์„œ ์š”์ฒญ ๋„ฃ์—ˆ๋”๋‹ˆ,

๋‚ด๊ฐ€ ์ง€์ •ํ•œ ํด๋”์— ์„ฑ๊ณต์ ์œผ๋กœ ๋“ค์–ด๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค!!!!!

 

DB์— ์ „์†กํ•˜๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ table์„ ์ƒ์„ฑํ•ด์ฃผ์ž

๊ทธ๋ฆฌ๊ณ ๋Š” VO๋„ ์ด์–ด์„œ ์ƒ์„ฑํ•ด์ฃผ์ž

 

ProductImageVO.java

์ด์ œ๋Š” mapper๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ์ž‘์„ฑํ•ด์ฃผ์ž

 

ProductMapper.xml
ProductMapper.java
ProductService.java

์—ฌ๊ธฐ๊นŒ์ง€ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋‹ค์‹œ API๋กœ ๋Œ์•„๊ฐ€์„œ ์ถ”๊ฐ€๋กœ ์ž‘์„ฑํ•ด์ฃผ์ž

 

ํŒŒ์ผ๋ช…๊ณผ ์‚ฌ์ด์ฆˆ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ์ž‘์—…์„ ํ•ด์ฃผ์—ˆ๋‹ค.

 

ํŒŒ์ผ์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋“ค์–ด๊ฐ”๋‹ค ....!!!!!!!!!!!!!!!!!!!!!!

 

* ์ด์ œ ํ•ด์•ผํ•  ์ผ์€,

์‚ฌ์ง„ ํŒŒ์ผ๋งŒ ์—…๋กœ๋“œ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค์–ด ์ค„๊ฒƒ์ด๋‹ค.

(ํ™•์žฅ์ž jpg, jpeg, png, gif ๋งŒ ํ—ˆ์šฉ)

 

๊ทธ๋Ÿผ ํ—ˆ์šฉ๋œ ํ™•์žฅ์ž๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ™•์žฅ์ž๋ฅผ ์—…๋กœ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์„ ์‹œ,

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์„ธ์ง€๋ฅผ ๋„์šฐ๋Š”์ง€ arc๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด๋ณด์ž

 

ppt ํŒŒ์ผ์„ ์š”์ฒญํ–ˆ์„ ์‹œ์—

์„ค์ •ํ•œ ๋ฉ”์„ธ์ง€๋ฅผ ๋„์–ด์ค€๋‹ค !!

์„ฑ๊ณต !!!!!

 

 

** ์‚ฌ์ง„์„ ๋“ฑ๋กํ•  ๋•Œ

uri๋ฅผ ๋„ฃ์–ด์ฃผ๋„๋ก ํ•ด์ฃผ์ž 

๋‹ค์Œ๊ฒŒ์‹œ๋ฌผ์—์„œ.. ์ด์–ด์„œ ..์ง„ํ–‰ ..