var _fileIdx = 0;
var testInterval;
//파일업로드 드래그앤 드롭
var objDragAndDrop = $("#upload_area");
$(document).on("dragenter","#upload_area",function(e){
e.stopPropagation();
e.preventDefault();
//$(this).css('border', '2px solid #0B85A1');
});
$(document).on("dragover","#upload_area",function(e){
e.stopPropagation();
e.preventDefault();
});
/**
* @description 해당 영역에 file drop 했을 시 이벤트 발생
*/
$(document).on("drop","#upload_area",function(e){
//$(this).css('border', '2px dotted #0B85A1');
e.preventDefault();
var files = e.originalEvent.dataTransfer.files;
handleFileUpload(files,objDragAndDrop); //파일업로드
});
$(document).on('dragenter', function (e){
e.stopPropagation();
e.preventDefault();
});
$(document).on('dragover', function (e){
e.stopPropagation();
e.preventDefault();
//objDragAndDrop.css('border', '2px dotted #0B85A1');
});
$(document).on('drop', function (e){
e.stopPropagation();
e.preventDefault();
});
//파일 드래그앤드롭 종료
//단일 파일업로드
$(function(){
$('#realFileUploadButton').change(function(e){
var objUpload = $(".upload_area");
var files = $('#realFileUploadButton')[0].files;
handleFileUpload(files,objUpload); //파일업로드
if($("#realFileUploadButton").length > 0){
$("#realFileUploadButton").val(""); //파일지우기
}
});
});
//단일 파일업로드 끝
function handleFileUpload(files,obj) //업로드 function
{
//팩스 파일업로드는 1개의 파일만 가능
if($('#tbody_fiielist tr').length > 0){
alert('첨부파일은 하나만 등록 가능합니다.');
return false;
}
_fileForm2 = []; //form file data 초기화
var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB)
var limitcount = 1;//$("input[name=limitcount]").val()*1 ;
var fileNece = true; //첨부파일필수
if($('#fileNece').length > 0){
if('N'==$('#fileNece').val()){
fileNece = false;
}
}
//엑셀 및 TXT 파일만 업로드 할수 있도록 체크하기
var fileNm = files[0].name;
fileExt = fileNm.split('.').pop().toLowerCase();
// if($.inArray(fileExt, ['txt','xls','xlsx']) == -1) {
if($.inArray(fileExt, ['hwp', 'hwpml', 'doc', 'xls', 'ppt', 'pdf', 'txt', 'docx', 'xlsx', 'pptx', 'tif', 'htm', 'html', 'jpg', 'jpeg', 'gif', 'bmp', 'gul']) == -1) {
alert('등록할 수 없는 파일입니다.');
return;
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
// var totalfileSize = 0;
// $('.totalfileCount').text($('.item_file_size').length) ;
// $('.item_file_size').each(function(){
// totalfileSize += $(this).val()*1 ;
// });
// $('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
/**
*
* @param {*} formData
* @param {*} obj
* @param {*} fileObj
* @param {*} _fileIdx
* @description 드래그앤 드롭 엑셀 및 텍스트 파일 서버 전송 함수
*/
function sendFileToServer(formData, obj , fileObj, _fileIdx)
{
var data = new FormData();
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file0", obj.fileObj);
});
var url = "/web/mjon/fax/faxFileConvertAjax.do";
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: true,
processData: false,
contentType: false,
cache: false,
//timeout: 600000,
success: function (data) {
console.log('data : ', data);
if(data.status=="OK"){
$('#convertForm #faxConvertSeq').val(data.object.faxConvertSeq);
testInterval = setInterval(function()
{
convertChk(formData, obj , fileObj, _fileIdx);
}, 2000 );
}else{
alert(data.message);
$('.loading_layer').removeClass('active');
$('#fileUploadButton').attr('disabled',false);
}
},
error: function (e) {
alert("변환에 실패하였습니다. 확장자를 확인해 주세요.");
console.log("ERROR : ", e);
},
beforeSend : function(xmlHttpRequest) {
//로딩창 show
$('.loading_layer').addClass('active');
$('#fileUploadButton').attr('disabled',true);
},
complete : function(xhr, textStatus) {
}
});
}
/* 파일사이즈 가져오기 */
function getStrFileSize(filesize){
var sizeStr="";
var sizeKB = filesize/1024;
if(parseInt(sizeKB) > 1024){
var sizeMB = sizeKB/1024;
sizeStr = sizeMB.toFixed(2)+" MB";
}else{
sizeStr = sizeKB.toFixed(2)+" KB";
}
return sizeStr;
}
/**
* @description 파일 변환 확인
*/
function convertChk(formData, obj , fileObj, _fileIdx){
var data = new FormData(document.convertForm);
$.ajax({
type: "POST"
, url: '/web/mjon/fax/findByConvertTbStatus.do'
, data: data
, dataType: 'json'
, async: false
, processData: false
, contentType: false
, cache: false
, success: function (data) {
console.log('data : ', data);
var object = data.object
if(object.status === 3){
/**
* :: resResult ::
* 0:변환 성공
* 1:요청 파일 없음
* 2:전송 중 오류
* 3:변환 중 오류
* 4:변환 문서 내려 받기 실패
* 5:내려 받은 문서 없음
*/
if(object.resResult === 0){
$('#fileChk').val('Y');
$('#convertForm #faxConvertFilePath').val(object.faxConvertFilePath);
$('#resPage').text(object.resPage);
$('#totalEa').val(object.resPage);
alert("변환이 정상적으로 처리되었습니다.");
try{
fileUploadAreaShow(formData, obj , fileObj, _fileIdx);
}
catch(error){
console.error(error);
}
}else{
alert("변환 중 오류가 발생하였습니다. \n파일 확인 후 다시 시도해주세요.");
}
clearInterval(testInterval);
// 로딩창 제거
$('.loading_layer').removeClass('active');
$('#fileUploadButton').removeAttr('disabled');
}
}
,error: function (e) {
console.log("ERROR : ", e);
alert("관리자에게 문의해 주세요");
}
});
}
/**
* @description 팩스 발송 function
*/
function fn_faxSendData(){
var data = new FormData(document.faxSendForm);
$.ajax({
type: "POST"
, url: '/web/mjon/fax/sendData.do'
, data: data
, dataType: 'json'
, async: false
, processData: false
, contentType: false
, cache: false
, success: function (data) {
console.log('data : ', data);
if(data.status == "OK"){
$('.pop_msg_success').css({'display':'block','opacity':'1','left':'50%','top':'50%','transform':'translate(-50%,-50%)'});
$('.pop_msg_success .msg_text').html("발송 성공 : "+ tableL.getRows().length + "건의
팩스가 발송 되었습니다.");
}else{
alert(data.message);
}
}
,error: function (e) {
console.log("ERROR : ", e);
alert("관리자에게 문의해 주세요");
}
});
}
//파일 업로드 후 리스트에 노출
function fileUploadAreaShow(formData, obj , fileObj, _fileIdx){
$('#upload_area').hide(); //list 박스 형식 변경
$('#upload_area_list').show();
var list_html = "";
var tt = "";
list_html += '