YNICTE/FO/js/filescript.js

73 lines
3.7 KiB
JavaScript

function filechange(f) {
if ($(f).val() != "") {
var ul = $(f).closest("ul");
var fname = $(f).val().toLowerCase();
var fext = fname.split('.')[fname.split('.').length - 1].toLowerCase();
var _filesize = getint($(ul).attr("data-maxsize"))|| 104857600;
var _filemax = $(ul).attr("data-maxname")||"100 Mega ";
var bytes = $(f)[0].files.length > 0 ? $(f)[0].files[0].size : 0;
if (ul.attr("data-isimage") == "1" && "png,jpg,gif".indexOf(fext) < 0) {
$(f).val("");
msg("이미지파일만 첨부할 수 있습니다.");
} else if (",xlsx,xls,hwp,pdf,zip,jpg,gif,png,txt,pptx,ppt,doc,docx,psd,mp4,mp3,wmv,".indexOf("," + fext + ",") < 0) {
$(f).val("");
msg("허용된 파일유형이 아닙니다.(" + fext + ")");
}
else if ($(ul).attr("data-fileext") != "*" && $(ul).attr("data-fileext").toLowerCase().indexOf(fext) < 0) {
msg("허용된 파일유형이 아닙니다.");
}
else if (bytes > (_filesize || 104857600)) {
$(f).val("");
msg('파일크기는 ' + (_filemax || "100 Mega ") + "입니다.");
}
else if ($(ul).find("li input.file").length + $(ul).find("li a.file").length < getint($(ul).attr("data-filecount"))) {
$(ul).append("<li><input type=\"file\" class=\"file\" name=\"" + $(ul).attr("data-fname") +"\" accept=\"media_type\" onchange=\"filechange(this)\" /><a href=\"#\" class=\"filedel\" onclick=\"filedel(0, this)\">삭제</a></li>");
}
}
}
var _filedela;
function filedel(no, a,datakey) {
_filedela = a;
var ul = $(a).closest("ul");
if (no < 1) {
$(a).closest("li").remove();
if ($(ul).find("li input.file").length + $(ul).find("li a.file").length < getint($(ul).attr("data-filecount"))) {
$(ul).append("<li><input type=\"file\" class=\"file\" name=\"" + $(ul).attr("data-fname") + "\" accept=\"media_type\" onchange=\"filechange(this)\" /><a href=\"#\" class=\"filedel\" onclick=\"filedel(0, this)\">삭제</a></li>");
//$(ul).append("<li><input type=\"file\" class=\"file\" name=\"" + $(ul).attr("data-fname") + "\" accept=\"image/*\" onchange=\"filechange(this)\" capture=\"gallery\" /><a href=\"#\" class=\"filedel\" onclick=\"filedel(0, this)\">삭제</a></li>");
}
var empli = false;
$.each($(ul).find("li"), function (i, li) {
if ($(li).find("input.file").val() == "") {
if (empli) {
$(li).addClass("delme");
} else {
empli = true;
}
}
});
$(ul).find("li.delme").remove();
}
else {
capp("/fcommon/filedel", { fileno: no ,datakey:datakey}, "cbfiledel");
}
}
function cbfiledel() {
if (capResult.code == 1000) {
var ul = $(_filedela).closest("ul");
$(_filedela).closest("li").remove();
if ($(ul).find("li input.file").length + $(ul).find("li a.file").length < getint($(ul).attr("data-filecount"))) {
$(ul).append("<li><input type=\"file\" class=\"file\" name=\"" + $(ul).attr("data-fname") + "\" accept=\"media_type\" onchange=\"filechange(this)\" /><a href=\"#\" class=\"filedel\" onclick=\"filedel(0, this)\">삭제</a></li>");
}
var empli = false;
$.each($(ul).find("li"), function (i, li) {
if ($(li).find("input.file").val() == "") {
if (empli) {
$(li).addClass("delme");
} else {
empli = true;
}
}
});
$(ul).find("li.delme").remove();
}
}