127 lines
4.2 KiB
JavaScript
127 lines
4.2 KiB
JavaScript
$(document).ready(function () {
|
|
|
|
//$("#fileUpload").on("change", addFiles);
|
|
});
|
|
|
|
var filesTempArr = [];
|
|
|
|
//파일추가
|
|
function addFiles(event, mode){
|
|
addFilesObj(event, mode,"fileList");
|
|
}
|
|
|
|
function addFilesObj(event, mode, objId){
|
|
if(!($(event.target).is('[multiple]'))) filesTempArr.splice(0, filesTempArr.length);
|
|
|
|
var files = event.target.files;
|
|
var filesArr = Array.prototype.slice.call(files); //file객체 array추가
|
|
var filesArrLen = filesArr.length;
|
|
var filesTempArrSize = filesTempArr.length*1;
|
|
|
|
let obj = $('#'+objId);
|
|
|
|
if(mode === 1 && obj.find('li').length>0){
|
|
alert("파일은 한개만 첨부할 수 있습니다.");
|
|
return;
|
|
}
|
|
|
|
var templist = '';
|
|
for(var i=0; i<filesArrLen; i++){
|
|
filesTempArr.push(filesArr[i]); //임시배열에 저장
|
|
|
|
if($(event.target).is('[multiple]')){
|
|
//templist = "<div id='temp"+(i+filesTempArrSize)+"'><a href='#' onclick='downloadFile(this, "+(i+filesTempArrSize)+");'>"+ filesArr[i].name + "</a><span style='color:red;' onclick='deleteFile(this, event, "+(i+filesTempArrSize)+");'> [X]</span></div>";
|
|
templist ="<li id='temp"+(i+filesTempArrSize)+"'>"
|
|
+"<a href='#' onclick='downloadFile(this, "+(i+filesTempArrSize)+");'>"
|
|
+ "<i class='icon icon_file-list mr-2'></i>"
|
|
+ "<span class='file-list__item-title'>"+ filesArr[i].name + "</span>"
|
|
+"</a>"
|
|
+"<button type='button' class='file-list__delete' onclick='deleteFile(this,0,0, "+(i+filesTempArrSize)+");'/>"
|
|
+"</li>";
|
|
|
|
obj.append(templist);
|
|
}
|
|
}
|
|
}
|
|
//드롭존 파일삭제(html 요소 조작 없이 단순 파일 삭제)
|
|
function dropzoneDeleteFiles(fileId, shopCd, menuGb, orderParam, callbackNm) {
|
|
if (fileId.indexOf('temp') != 0) { //임시등록파일은 화면에서 삭제
|
|
if (confirm("파일을 삭제하시겠습니까?")) {
|
|
ajaxFileDelete('', fileId, shopCd, menuGb, orderParam, callbackNm);
|
|
return "Y";
|
|
} else {
|
|
return "N";
|
|
}
|
|
}
|
|
}
|
|
|
|
//파일삭제
|
|
function deleteFile (obj, shopCd, menuGb, orderParam){
|
|
deleteFiles (obj, shopCd, menuGb, orderParam, '#fileUpload');
|
|
}
|
|
|
|
//파일삭제
|
|
function deleteFiles (obj, shopCd, menuGb, orderParam, objNm){
|
|
filesTempArr.splice(orderParam, 1);
|
|
var $div = $(obj).closest('li');
|
|
var $id = $div.attr('id');
|
|
|
|
if($id.indexOf('temp') == 0) { //임시등록파일은 화면에서 삭제
|
|
$div.remove(); $(objNm).val('');
|
|
}else{ //업로드된 파일은 서버삭제
|
|
if(confirm("파일을 삭제하시겠습니까?")){
|
|
ajaxFileDelete($div,$id,shopCd, menuGb,orderParam);
|
|
}
|
|
}
|
|
}
|
|
|
|
var ajaxFileDelete = function(obj,fileId,shopCd, menuGb,orderParam){
|
|
$.ajax({
|
|
// url: '/file/deleteUploadedFile/'+shopCd+'/'+menuGb+'/'+fileId+'/ajax',
|
|
url: '/file/deleteUploadedFile?sopCd='+shopCd+'&menuGb='+menuGb+'&fileKey='+fileId,
|
|
data: {fileId:fileId},
|
|
type: 'get',
|
|
success : function(data){
|
|
if(obj !== ''){
|
|
obj.remove();
|
|
}
|
|
},
|
|
error: function(){
|
|
alert("삭제에 실패하였습니다.");
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
//다운로드
|
|
var downloadFile = function(obj,shopCd, menuGb,orderParam){
|
|
filesTempArr.splice(orderParam, 1);
|
|
var $div = $(obj).closest('li');
|
|
var fileId = $div.attr('id'); // <li>태그id - 파일글번호
|
|
var orgFileId = obj.id; //선택된 파일명. 즉 <a>태그id - 원본파일명
|
|
|
|
if(fileId.indexOf('temp') == 0){
|
|
alert("등록된 파일만 다운로드 가능합니다.");
|
|
return false;
|
|
}
|
|
|
|
//$(location).attr('href','/file/download/'+shopCd+'/'+menuGb+'/'+fileId+'/'+orgFileId+'/ajax');
|
|
//$(location).attr('href','/file/download/'+shopCd+'/'+menuGb+'/'+fileId+'/ajax');
|
|
$(location).attr('href','/file/fileDownload?sopCd='+shopCd+'&menuGb='+menuGb+'&fileKey='+fileId);
|
|
}
|
|
|
|
|
|
//다운로드
|
|
var linkDownloadFile = function(key, fileName ,shopCd, menuGb,orderParam){ //파일글번호, 원본파일명
|
|
filesTempArr.splice(orderParam, 1);
|
|
|
|
if(key.indexOf('temp') == 0){
|
|
alert("등록된 파일만 다운로드 가능합니다.");
|
|
return false;
|
|
}
|
|
|
|
//$(location).attr('href','/file/download/'+shopCd+'/'+menuGb+'/'+key+'/ajax');
|
|
$(location).attr('href','/file/fileDownload?sopCd='+shopCd+'&menuGb='+menuGb+'&fileKey='+key);
|
|
}
|
|
|