-
[파일업로드] <form> 방식파일업로드 2016. 9. 11. 13:54
사용자로부터 입력받은 파일을 서버로 보내는 방법은 크게 두가지가 있다. <form> 태그를 이용한 전송과 Ajax 방식이다. <form> 방식은 <input> 태그를 이용하여 사용자로부터 파일을 선택하게 하고 form.submit() 을 통해 서버로 전송하는 방식이다. Ajax 방식은 사용자가 선택한 파일을 XMLHttpRequest 에 실어서 서버에 보내는 방식이다.
이 포스팅에서는 <form> 을 사용하는 방식을 다뤄본다.
1234<form id="form1" action="uploadForm" method="post" enctype="multipart/form-data" target="repacatFrame"><input type="file" name="file"><input type="submit"></form>cs 파일 전송을 위한 <form> 의 모양은 대략 위와 같다. 화면상에는 아래와 같이 나온다.
파일전송 form 에서 주의해서 설정해야할 attribute 는 바로 entype 이다.
w3schools 에는 아래와 같이 설명이 나온다. enctype attribute 가 가질 수 있는 값은 3개인데, <form> 내에 <input type="file"> 이 있을 경우 "multipart/form-data" 로 지정해줘야 한다. 지정하지 않을 경우 "application/x-www-form-urlencoded" 가 default 로 설정된다.
enctype application/x-www-form-urlencoded
multipart/form-data
text/plainSpecifies how the form-data should be encoded when submitting it to the server (only for method="post") 한가지 더 알아야 할 attribute 는 target 이다.
target _blank
_self
_parent
_topSpecifies where to display the response that is received after submitting the form target 속성은 <form> 이 submit 되고 난 뒤 서버로부터 받는 response 를 표시할 대상을 지정하는 것이다. default 로 <form> 이 포함된 문서이며 이 때문에 <form> 을 전송한 후에는 화면 전체가 서버에서 받은 response 로 리프레시 된다. <form> 에 target 을 <iframe> 으로 지정함으로써 화면 전체 갱신을 하지 않을 수 있다.
위의 <form> 에서는 "repacatFrame" 이라는 iframe 을 지정함으로써 response 가 iframe 으로 전달된다. 서버에서 아래와 같은 response 를 생성하여 부모 layer 의 함수를 호출할 수 있다.
1234<script>var result = '${savedName}';parent.addFilePath(result);</script>cs '파일업로드' 카테고리의 다른 글
[파일업로드] 업로드한 파일 다운로드 처리 (0) 2016.09.12 [파일업로드] 서버에서의 처리 (0) 2016.09.12 [파일업로드] Ajax 방식 (3) 2016.09.11 [파일업로드] MIME (0) 2016.09.10