๋กœ์ผ“๐Ÿพ
article thumbnail
๋ฐ˜์‘ํ˜•

 

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ajax๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์„œ๋ฒ„์— ์—…๋กœ๋“œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ajax๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ตณ์ด ํŒŒ์ผ ์ „์†ก์„ ์œ„ํ•˜์—ฌ form ํƒœ๊ทธ๋กœ ๊ฐ์‹ธ์ค„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

 

์ด ๊ธ€์€ ์Šคํ”„๋ง ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


#  Front

 

 

<script type="text/javascript">
$(()=>{
	$('#fileSubmitBtn').on("click",function(){
		var form = $('#attachFile')[0].files[0];
		var formData = new FormData();
		
		formData.append('files', form);
		 $.ajax({
		        type: "POST",
		        enctype: 'multipart/form-data',
		        url: "/test/main2.do",
		        data: formData,
		        processData: false,
		        contentType: false,
		        cache: false,
		        timeout: 600000,
		        success: function (data) {
		            alert("์„ฑ๊ณต");
		        },
		        error: function (e) {
		            alert("์‹คํŒจ");
		        }
		    });
	});
})
</script>

<html>
  <head>
  	<meta charset=UTF-8">
  	<title>๊ฒฐ๊ณผ์ฐฝ</title>
  </head>
  <body>
      <input type="file" id="attachFile">
      <div id="fileSubmitBtn">์ œ์ถœํ•˜๊ธฐ</div>
  </body>
</html>

 

ajax์˜ ์†์„ฑ ๋‚˜๋จธ์ง€๋Š” ์•Œ๊ฑฐ๋ผ ์ƒ๊ฐํ•˜๊ณ  processData๋งŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

processData๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„์— ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” query string ์ด๋ผ๋Š” ํ˜•ํƒœ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

 http://example.com/over/there?title=Main_page&action=raw

? ๋’ค์— ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ฃผ์˜ํ•  ์ ์€ ํŒŒ์ผ ์ „์†ก์ด ์žˆ์„ ๊ฒฝ์šฐ ์ด๋ฅผ ๋ฐ˜๋“œ์‹œ false๋กœ ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 


#  Back

 

@Controller("mainController")//์• ๋„ˆํ…Œ์ด์…˜์„ ์ด์šฉํ•ด ๋นˆ์œผ๋กœ ์ž๋™ ๋ณ€ํ™˜
@RequestMapping(value="/test")//ํด๋ž˜์Šค ๋‹จ๊ณ„์˜ url ๋งตํ•‘
public class MainController {
	@RequestMapping(value="/main1.do", method = RequestMethod.GET)//๋ฉ”์„œ๋“œ ๋‹จ๊ณ„์˜ url ๋งตํ•‘
	public ModelAndView main1(HttpServletRequest request, HttpServletResponse response)
	throws Exception{
		ModelAndView mv = new ModelAndView();
		mv.addObject("msg", "main1");
		mv.setViewName("main");
		
		return mv;
	}
	
	@RequestMapping(value="/main2.do", method = RequestMethod.POST)
	public ModelAndView main2(HttpServletRequest request, HttpServletResponse response, MultipartHttpServletRequest mRequest)
	throws Exception{
		ModelAndView mv = new ModelAndView();
		mv.addObject("msg", "main2");
		mv.setViewName("main");
		
		return mv;
	}
	
}

 

ํŒŒ์ผ ์ฒจ๋ถ€๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ Controller์˜ ์ธ์ž๋กœ MultipartHttpServletRequest ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์ฒจ๋ถ€๊ฐ€ ์žˆ๋Š” ๋ฐ ๋งŒ์•ฝ MultipartHttpServletRequest๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๋งตํ•‘์„ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

 


# ์‹คํ–‰

 

view.jsp

 

ํŒŒ์ผ ์„ ํƒ์„ ๋ˆŒ๋Ÿฌ ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•ด์ค€ ๋‹ค์Œ ์ œ์ถœํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

ํŒŒ์ผ ์ฒจ๋ถ€๋ฅผ ํ•œ ํ›„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ˜์†”์— ์ฐ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ฝ˜์†” ์ถœ๋ ฅ ๊ฒฐ๊ณผ

๋ณด์‹œ๋ฉด formData์— ๋ถ„๋ช… file์„ ๋‹ด์•˜๋Š”๋ฐ ์ฝ˜์†”์—๋Š” ์—†๋Š” ๊ฐ’์œผ๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ณด์•ˆ์ƒ ์ฝ˜์†”์— ์ฐํžˆ์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•˜๋‹ˆ ์ฝ˜์†”์— ๊ฐ’์ด ๋‚˜์˜ค์ง€ ์•Š๋”๋ผ๋„ ๋‹นํ™ฉํ•˜์‹œ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

 

๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ๋„˜์–ด์™€์„œ ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•˜๊ณ  ํ•ด๋‹น url๋กœ ํ†ต์‹ ์„ ๋ณด๋‚ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

mRequest์— ํŒŒ์ผ์ด ์ž˜ ๋‹ด๊ธด ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์งˆ๋ฌธ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

 

"๋‚œ ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—”๋“œ ์™•์ด ๋ ๊ฑฐ์•ผ"

๋ฐ˜์‘ํ˜•
profile on loading

Loading...