//2018-05-14 3-최준호
//소장품 pdf 만 업로드
@RequestMapping(value = "/boardFileUploadPDF.do", method=RequestMethod.POST)
public void boardFileUpload2(@ModelAttribute("boardfileVo") BoardFileVo boardfileVo, MultipartHttpServletRequest multiRequest, HttpServletRequest request, HttpServletResponse response, HttpSession session) throws OperationFailedException, IllegalStateException, IOException, SQLException{
PrintWriter out =response.getWriter();
TemplateVo templateVo = templateService.selectTemplate(boardfileVo.getBbscd());
//String uploadPath = templateVo.getFile_path();
//String uploadPath ="/upload/artwork/";
//String realPath=session.getServletContext().getRealPath("/");
String uploadPath="kor/resources/pdf/";
logger.info("\n\n\n\n\n 업로드 경로 : " + uploadPath);
//logger.info("\n\n\n\n\n 업로드 경로 : " + realPath+FILE_PATH_PDF + "\n\n\n\n\n\n\n");
File desti=new File(uploadPath);
//해당 디렉토리의 존재여부를 확인
if(!desti.exists()){
//디렉토리가 없다면 생성
desti.mkdirs();
}
MultipartFile uploadFile = multiRequest.getFile("uploadfile");
String[] fileInfo;
//String currUrl = request.getRequestURI();
if(!uploadFile.isEmpty()){
if((Integer.parseInt(templateVo.getFile_maxsize()) * 1024 * 1024) < (Long.bitCount(uploadFile.getSize()) + boardfileVo.getFile_upload_size())){
out.print("overflow");
}else{
fileInfo = FileUtil.parseFilePDFInf(uploadFile, uploadPath, request, session);
logger.info("-----------> fileInfo : "+fileInfo);
// fileInfo[0] = ori_name;
// fileInfo[1] = save_name;
out.print(fileInfo[0]+"*"+fileInfo[1]);
}
}else{
out.print("false");
}
}
formData를 이용하여 간단하게 ajax로 파일업로드
ie9 이하에서는 작동기능
바로바로 jquery.form.js
<form name="pfrm" id="pfrm" method="post" enctype="multipart/form-data">
<!-- pdf -->
<input type="hidden" name="ori_name" id="ori_name" >
<input type="hidden" name="art_img2" id="art_img2" >
<input type="hidden" name="image_2_delete" id="image_2_delete">
</form>
<!-- 파일 업로드 Form 시작 -->
<form name="boardFileAjaxForm" id="boardFileAjaxForm" method="post" enctype="multipart/form-data" action="/boardFileUploadPDF.do">
<input type="hidden" name="bbscd" value="22">
<input type="hidden" name="file_upload_size" class="file_upload_size" value="">
<input type="hidden" name="file_extension" id="file_extension" value="pdf">
<input type="hidden" name="menucd" value="647">
<table summary="PDF 파일 업로드" class="tbl_type">
<caption>대표이미지 클릭시 링크되는 PDF 파일 업로드</caption>
<colgroup>
<col width="120">
<col width="auto">
</colgroup>
<tbody>
<tr>
<th scope="row">PDF 파일 첨부</th>
<td>
<c:choose>
<c:when test="${!empty artworkVO.art_img2 }">
<input type="file" name="uploadfile" id="uploadfile" onchange="fnAjaxFileUploadChangeEvent2();" class="i_input i_text" style="width:99%;" >
<a href="<c:url value="/kor/resources/pdf/${artworkVO.art_img2 }" />" target="_blank" >${artworkVO.ori_name }</a>
<input type="checkbox" name="image_2_delete_chekck" id="image_2_delete_check" onchange="image2DeleteCheck()" /> <label for="image_2_delete_check">체크시 첨부 PDF 파일이<b>삭제</b> 됩니다.</label>
</c:when>
<c:otherwise>
<input type="file" name="uploadfile" id="uploadfile" onchange="fnAjaxFileUploadChangeEvent2();" class="i_input i_text" style="width:99%;">
</c:otherwise>
</c:choose>
</td>
</tr>
</tbody></table>
</form>
<script>
/**
* 파일 업로드 이벤트 3-최준호
*/
function fnAjaxFileUploadChangeEvent2() {
var regex = /\.(bmp|jpg|png|jpeg|gif|JPG|PNG|JPEG|GIF|BMP)$/i; //이미지파일만
if ($("#uploadfile").val().match(regex)) {
alert("이미지 파일은 대표이미지에 업로드를 이용해 주십시오");
$("#uploadfile").val("");
return false ;
} else {
if ($('#boardFileAjaxForm .file_upload_size').val() == "") {
$('#boardFileAjaxForm .file_upload_size').val(0);
}
var file = $('#uploadfile').val().toLowerCase();
var file_extension = file.substring(file.lastIndexOf('.') + 1);
var types_arr = $('#file_extension').val().split(",");
var file_ex_ck = true;
for (var i = 0; i < types_arr.length; i++) {
if (file_extension == types_arr[i]) {
file_ex_ck = false;
break;
}
}
if (file_ex_ck) {
alert("업로드 할수 없는 파일 형식 입니다.\n" + file_extension + " 확장자를 업로드 하시고 싶으시다면\n해당 게시판 템플릿을 수정 하시길 바랍니다.");
$("#uploadfile").val("");
return false;
}
//var form=$("#boardFileAjaxForm")[0];
// var formData=new FormData(form);
/* console.log(formData);
$.ajax({
url : "<c:url value='/boardFileUploadPDF.do' />",
processData:false,
contentType:false,
enctype:"multipart/form-data",
cache:false,
data:formData,
type:"POST",
success:function(result){
alert(result);
var beforStr=$.trim(result);
var afterStr=beforStr.split("*");
$("#ori_name").val(afterStr[0]);
$("#art_img2").val(afterStr[1]);
},
error:function(e){
console.log("error : " , e);
}
}); */
//ajax form submit
$('#boardFileAjaxForm').ajaxForm({
beforeSubmit: function (data,form,option) {
//validation체크
//막기위해서는 return false를 잡아주면됨
return true;
},
success: function(response,status){
//성공후 서버에서 받은 데이터 처리
var beforStr=$.trim(response);
var afterStr=beforStr.split("*");
$("#ori_name").val(afterStr[0]);
$("#art_img2").val(afterStr[1]);
},
error: function(){
//에러발생을 위한 code페이지
}
}).submit();
}
}
</script>
$(function(){
//ajax form submit
$('#frm').ajaxForm({
beforeSubmit: function (data,form,option) {
//validation체크
//막기위해서는 return false를 잡아주면됨
return true;
},
success: function(response,status){
//성공후 서버에서 받은 데이터 처리
alert("업로드 성공!!");
},
error: function(){
//에러발생을 위한 code페이지
}
}).submit();
});
jquery.form.min.zip










댓글 ( 4)
댓글 남기기