ํŒŒ์ผ API๋ฅผ ์ด์šฉํ•œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ตฌํ˜„

2020. 5. 19. 19:15ยท ๐ŸŒ WEB/JavaScript

2020/05/16 - [WEB/Spring] - ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ (Spring+Ajax)

 

์ด๋ฏธ์ง€ ์—…๋กœ๋“œ (Spring+Ajax)

Hyper ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๊ณผ์ • ์ค‘ ์–ด๋ ค์›Œํ–ˆ๋˜ ํŒŒ์ผ ์—…๋กœ๋“œ์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. commons-fileupload๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ  pom.xml์— ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค. Ajax๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋‹ˆ Controller์— @ResponseBody๋ฅผ ๋ถ™.

aejeong.com

์ด์–ด์„œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

var upload = document.querySelector('#file');
upload.addEventListener('change',function (e) {
	var get_file = e.target.files;
	var selected_file = upload.files[0];
	var idxDot = selected_file.name.lastIndexOf(".") + 1;
	var extFile = selected_file.name.substr(idxDot, selected_file.name.length).toLowerCase();
	
    if (extFile == "jpg" || extFile == "jpeg" || extFile == "png" || extFile == "svg" || extFile == "gif") {
		var image=document.createElement('img');
		var reader = new FileReader();
        
		reader.onload=(function(aImg){
			return function(e){
				aImg.src=e.target.result;			
				//ํŒŒ์ผ ์‚ฌ์ด์ฆˆ ์ฒดํฌ
				var oriSize = upload.files[0].size/1000000;
				var stopTemp = (oriSize+"").indexOf(".");
				var size = (oriSize+"").substring(0,stopTemp) + (oriSize+"").substring(stopTemp,4);
				if (size>2) {
					alert("์ด๋ฏธ์ง€ ํฌ๊ธฐ : "+size+"MB\n2MB๋ณด๋‹ค ๋‚ฎ์€ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์‹œ ์˜ฌ๋ ค์ฃผ์„ธ์š”.");
				}else{
					alert("์ด๋ฏธ์ง€ ํฌ๊ธฐ : "+size+"MB\n์ด๋ฏธ์ง€๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.");
					//๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ณ€๊ฒฝ
					preDef.style.display = 'none';
					preView.style.display ='block';
					preView.style.backgroundImage ='url(\"'+e.target.result+'\")';
				}
			}
		})(image)	
		
        if(get_file){
			reader.readAsDataURL(get_file[0]);
		}
        } else {
        alert("์ด๋ฏธ์ง€ ํŒŒ์ผ๋งŒ ์—…๋กœ๋“œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ex) jpg/jpeg, png, svg, gif");
        }
})

์ฝ”๋“œ๋ฅผ ๋จผ์ € ์‚ดํŽด๋ณด๋ฉด ์ €๋ฒˆ ๊ธ€์—์„œ JSP inputํƒœ๊ทธ ์•ˆ์— id๋ฅผ file๋กœ ํ–ˆ๋˜ ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์™”์Šต๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๊ฑธ์–ด์ฃผ์–ด์„œ change ์ฆ‰ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธธ๋•Œ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

e.target.files ์—์„œ files๋Š” ์„ ํƒ๋œ ํŒŒ์ผ์˜ File ๊ฐ์ฒด๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐฐ์—ด์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

Hyper์—์„œ๋Š” ๋‹ค์ค‘์—…๋กœ๋“œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— files[0] ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ๋ฐฐ์—ด์— ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ต๋‹ˆ๋‹ค.

 

jpg,png ๋“ฑ์˜ ํ™•์žฅ์ž๋งŒ์„ ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•ด  .name์„ ํ•ด์„œ ํŒŒ์ผ๋ช…์„ ๊ฐ€์ง€๊ณ  ์™”์Šต๋‹ˆ๋‹ค.

 

onload๋ฅผ ์‚ฌ์šฉํ•  ๊ฑด๋ฐ ์ฆ‰์‹œ์‹คํ–‰ํ•จ์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ aImag๋ฅผ ๋„˜๊ฒจ์ฃผ๋ฉด ๋‚ด๋ถ€์—์„œ ๋ถˆ๋Ÿฌ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  if๋กœ ๋„˜์–ด๊ฐ€์„œ file์ด ์žˆ์„ ๊ฒฝ์šฐ readAsDataURL ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด DataURLํ˜•์‹์œผ๋กœ ์ฝ์–ด ๋“ค์ธ ๊ฒƒ์„ result์†์„ฑ์— ๋‹ด๊น๋‹ˆ๋‹ค.

 

 

ํŒŒ์ผ ์ฝ์Œ -> if(get_file)๋กœ ๋„˜์–ด๊ฐ€์„œ URLํ˜•์‹์œผ๋กœ result์— ๋‹ด๊น€ ->onloadํ•จ์ˆ˜ ์‹คํ–‰

 

 

 

๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ ์šฉ

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐ŸŒ WEB > JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

DataTable Ajax ์‚ฌ์šฉํ•˜๊ธฐ  (0) 2020.05.12
var, const, let  (0) 2020.03.05
'๐ŸŒ WEB/JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • DataTable Ajax ์‚ฌ์šฉํ•˜๊ธฐ
  • var, const, let
์• ์ •์“ฐ
์• ์ •์“ฐ
์• ์ •์“ฐ
์• ์ •์ฝ”๋”ฉ ๐Ÿ’ป
์• ์ •์“ฐ
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (93)
    • ๐Ÿง  MIND (0)
    • ๐Ÿ“ ํšŒ๊ณ  (5)
    • โš™๏ธ ๋ฐฐํฌ ๋ฐ ์ธํ”„๋ผ (2)
    • ๐Ÿ—‚๏ธ DataBase (1)
      • QUERY (1)
    • ๐Ÿ’ป Computer Science (12)
    • ๐ŸŒ WEB (62)
      • HTML,CSS (0)
      • Kotlien (1)
      • JAVA (20)
      • JavaScript (3)
      • Spring (16)
      • Thymeleaf (2)
      • Node.js (1)
      • React (2)
      • SETTING (3)
      • JPA (11)
    • ๐Ÿœ TESTING (3)
    • ๊ธฐํƒ€ (4)
    • ์—๋Ÿฌ๋ชจ์Œ (4)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์ง๋ ฌํ™”
  • JWT
  • rdsํŒŒ๋ผ๋ฏธํ„ฐ
  • ์ธํ„ฐ๋ทฐ
  • ์ž๋ฐ”
  • ArgumentCaptor
  • Setting
  • JPA
  • XSSFWorkbook
  • 6์›”ํšŒ๊ณ 
  • Gson null
  • ๋ฉ”์„œ๋“œํ…Œ์ŠคํŠธ
  • max_digest_length
  • ์ฝ”ํ…Œ
  • QueryDSL
  • Spring
  • ์„œ๋น„์Šคํ…Œ์ŠคํŠธ
  • ๋™์ ํ”„๋ก์‹œ
  • enum
  • ๋ฐฑ์ค€
  • ๊ธฐ์ดˆ
  • Java
  • spring-boot
  • Til
  • ํšŒ๊ณ 
  • ํŒŒ์ด์ฌ
  • null์ œ์™ธ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๊ฐœ๋ฐœ์žํšŒ๊ณ 
  • ๊ฐœ๋ฐœ์ž

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.v4.2.1
์• ์ •์“ฐ
ํŒŒ์ผ API๋ฅผ ์ด์šฉํ•œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ตฌํ˜„
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.