https://addio3305.tistory.com/83
https://meaownworld.tistory.com/30
commons-fileupload-1.3.1.jar
commons-io-2.2.jar
context-application.xml 파일
* value 는 파일 크기를 의미함, 100000000 는 10메가바이트 =================================================================================================================
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000000" />
</bean>
=================================================================================================================
*form
onsubmit=’return false;’ 옵션을 주어야 새로고침 없이 전송이 됨,
enctype=’multipart/form-data’ 옵션을 주어야 파일 전송이 가능
=================================================================================================================
<form method='post' name='csvForm' id='csvForm' onsubmit='return false;' enctype='multipart/form-data'>
</form>
=================================================================================================================
*function
파일전송의 경우
processData : false
contentType : false
를 줘야함
=================================================================================================================
function csvUpLoad() {
var form = $('##csvForm')[0];
alert(form);
// FormData 객체 생성
var formData = new FormData(form);
/*코드로 동적으로 데이터 추가 가능.*/
/*formData.append("userId", "testUser!");*/
$.ajax({
type: 'POST',
url: '/user/csvUpload.do',
enctype: 'multipart/form-data',
data: formData,
processData: false,
contentType: false,
success: function (data) {
alert("총 " + data + "명의 사용자 등록 성공");
},error: function () {
alert("사용자 등록 실패");
}
}); }
=================================================================================================================
=================================================================================================================
@ResponseBody
@RequestMapping(value="user/csvUpload.do",method=RequestMethod.POST)
public int csvUpload(HttpServletRequest request){
logger.info("user/csvUpload.do");
MultipartHttpServletRequest multi = (MultipartHttpServletRequest) request;
MultipartFile file = multi.getFile("csvFileName");
/*파일이름 앞에 날짜와 시간을 붙여서 저장*/
SimpleDateFormat format1 = new SimpleDateFormat( "yyyyMMddHHmmss");
Calendar calendar = Calendar.getInstance();
String fileName = format1.format(calendar.getTime())+"_"+file.getOriginalFilename();
File saveFile = new File(fileFath,fileName);
try{
/*파일 저장*/
file.transferTo(saveFile);
}catch (IOException e){
System.out.println(fileError);
}
int insertCount = userService.csvFileInsert(fileFath,fileName);
System.out.println("insertCount : " + insertCount);
return insertCount;
}
=================================================================================================================
=================================================================================================================
public int csvFileInsert(String fileFath,String fileName){
BufferedReader bufferedReader=null;
String line = null;
int i=0;
File locationFile = new File(fileFath+fileName);
try {
bufferedReader = new BufferedReader(new FileReader(locationFile));
while( (line = bufferedReader.readLine()) != null) {
//CSV 1행을 저장하는 리스트
if(i==0){
i++;
continue;
}
i++;
String array[] = line.split(",");
UserVO uvo = new UserVO();
uvo.setIdp_user_id(array[0]);
uvo.setIdp_user_pw(array[1]);
uvo.setIdp_user_name(array[2]);
uvo.setIdp_emp_code(array[3]);
uvo.setIdp_user_deptid(array[4]);
uvo.setIdp_user_mobile(array[5]);
uvo.setIdp_user_spotid(array[6]);
uvo.setIdp_user_posid(array[7]);
uvo.setIdp_user_dutyid(array[8]);
uvo.setIdp_user_description(array[9]);
uvo.setIdp_user_email(array[10]);
System.out.println("uvo : " + uvo);
sqlSession.insert(namespace+".userInsert",uvo);
}
}catch (Exception e) {
e.printStackTrace();
}finally {
try{
if(bufferedReader!=null){
bufferedReader.close();
}
}catch (IOException e){
}
}
return i-1;
}
=================================================================================================================