";
aks.append(html);
function content() {
var content = aks.find(".aks-file-upload");
content.append('');
}
content();
function label() {
var label = aks.find(".aks-file-upload-content");
var labelhtml =
'";
label.append(labelhtml);
}
label();
function error(text) {
var error = aks.find(".aks-file-upload");
var errorhtml = '
' + text + "
";
error.append(errorhtml);
}
function bytesToSize(bytes) {
var sizes = ["BYTE", "KB", "MB", "GB", "TB"];
if (bytes == 0) return "0 BYTE";
var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
return Math.round(bytes / Math.pow(1024, i), 2) + " " + sizes[i];
}
Object.size = function (obj) {
var size = 0,
key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
var data = {};
var dataDifferent = {};
var formData = new FormData();
function isfileUploadInput(fileTarget) {
var fileUploadInputType = $(settings.fileUpload).attr("type");
if (fileUploadInputType === "file") {
} else if (fileUploadInputType === "json") {
$(settings.fileUpload).html(JSON.stringify(dataDifferent));
} else {
$(settings.fileUpload).val(JSON.stringify(dataDifferent));
}
}
function dataAppend(dataAppendFile) {
var formAppend = (data["file-" + dataAppendFile.name] = dataAppendFile);
var dataDifferentObj = {
name: dataAppendFile.name,
size: bytesToSize(dataAppendFile.size),
type: dataAppendFile.name.split(".").pop().toLowerCase()
};
var dataDifferentAppend = (dataDifferent[
"file-" + dataAppendFile.name
] = dataDifferentObj);
formData.append("file", formAppend);
isfileUploadInput(dataAppendFile);
}
function dataRemove(dataRemove) {
delete data["file-" + dataRemove];
delete dataDifferent["file-" + dataRemove];
formData.append("file", data);
isfileUploadInput();
}
function file(file) {
dataAppend(file);
var fileName = file.name;
var fileSize = bytesToSize(file.size);
var fileType = file.type;
var fileTypeExtension = file.name.split(".").pop().toLowerCase();
var fileTypeisExtension =
settings.fileType.indexOf(fileTypeExtension) > -1;
var fileTypeAdd = "";
function allOkey() {
if (fileType === "image/png") {
var fileTypeAdd = "png";
}
var fileIcon = "";
if (file.type.match("image.*")) {
var fileIcon =
'';
} else if (fileTypeExtension === "pdf") {
var fileIcon =
'';
} else if (fileTypeExtension === "docx") {
var fileIcon =
'';
} else if (fileTypeExtension === "xls") {
var fileIcon =
'';
} else if (fileTypeExtension === "ppt") {
var fileIcon =
'';
} else if (fileTypeExtension === "html") {
var fileIcon =
'';
} else if (fileTypeExtension === "css") {
var fileIcon =
'';
} else if (fileTypeExtension === "js") {
var fileIcon =
'';
} else if (fileTypeExtension === "py") {
var fileIcon =
'';
} else if (fileTypeExtension === "apk") {
var fileIcon =
'';
} else if (fileTypeExtension === "psd") {
var fileIcon =
'';
} else if (fileTypeExtension === "sql") {
var fileIcon =
'';
} else if (fileTypeExtension === "fig") {
var fileIcon =
'';
} else if (fileTypeExtension === "sketch") {
var fileIcon =
'';
} else if (fileTypeExtension === "ai") {
var fileIcon =
'';
} else if (fileTypeExtension === "aep") {
var fileIcon =
'';
} else if (fileTypeExtension === "php") {
var fileIcon =
'';
} else if (fileTypeExtension === "csv") {
var fileIcon =
'';
} else if (file.type.match("video.*")) {
var fileIcon =
'';
} else if (file.type.match("audio.*")) {
var fileIcon =
'';
} else {
var fileIcon =
'';
}
function deleteButton() {
var deleteButton =
'';
return deleteButton;
}
function uploadButton() {
var uploadButton =
'';
return uploadButton;
}
var niceButtons = "";
var uploadbars = "";
if (settings.ajaxUpload === true) {
if (settings.ajax["directlyLoad"] === true) {
var niceButtons = '
' + uploadButton();
+"
" + deleteButton();
var uploadbars =
'';
} else {
var niceButtons = uploadButton();
var uploadbars =
'';
}
} else {
var niceButtons = deleteButton();
}
if (!file.type.match("image.*")) {
var filehtml =
'
' +
uploadbars +
'
' +
fileIcon +
'
' +
'' +
fileName +
"" +
'' +
fileSize +
"" +
"
" +
niceButtons +
"
";
var filepreview = aks.find(".aks-file-upload-content");
$(filepreview).append(filehtml);
$('[data-file="' + fileName + '"]').animate({ height: 55 }, 200);
$('[data-file="' + fileName + '"]').fadeIn(650);
} else {
var reader = new FileReader();
var image = new Image();
var _URL = window.URL || window.webkitURL;
image.onload = function (e) {
dataDifferent["file-" + fileName].width = image.naturalWidth;
dataDifferent["file-" + fileName].height = image.naturalHeight;
};
reader.onload = function (e) {
dataDifferent["file-" + fileName].base64 = e.target.result;
var imagehtml =
'
' +
uploadbars +
'
' +
fileIcon +
'
' +
'' +
fileName +
"" +
'' +
fileSize +
"" +
"
" +
niceButtons +
'
';
var preview = aks.find(".aks-file-upload-content");
$(preview).append(imagehtml);
$('[data-file="' + fileName + '"]').animate({ height: 240 }, 200);
$('[data-file="' + fileName + '"]').fadeIn(650);
};
image.src = _URL.createObjectURL(file);
reader.readAsDataURL(file);
}
}
function CheckFileSize() {
var maxSize = settings.maxSize;
var maxSizeExtension = maxSize.split(/\s+/);
var maxSizeConvert = maxSizeExtension[0];
var maxSizeFormat = maxSizeExtension[1].toLowerCase();
var fileSizeExtension = bytesToSize(file.size).split(/\s+/);
var fileSizeConvert = fileSizeExtension[0];
var fileSizeFormat = fileSizeExtension[1].toLowerCase();
var bytes = "";
if (maxSizeFormat === "kb") {
var bytes = maxSizeConvert * 1000;
} else if (maxSizeFormat === "bytes") {
var bytes = maxSizeConvert * 1;
} else if (maxSizeFormat === "byte") {
var bytes = maxSizeConvert * 1;
} else if (maxSizeFormat === "mb") {
var bytes = maxSizeConvert * 1000000;
} else if (maxSizeFormat === "gb") {
var bytes = maxSizeConvert * 1000000000;
} else if (maxSizeFormat === "tb") {
var bytes = maxSizeConvert * 1000000000000;
} else {
console.log('There is a problem with "maxSize"');
}
return bytes;
}
if (Object.size(dataDifferent) > settings.maxFile) {
error(settings.maxFileError + " " + settings.maxFile);
dataRemove(fileName);
} else if (!fileTypeisExtension) {
error('"' + fileTypeExtension + '" ' + settings.fileTypeError);
dataRemove(fileName);
} else if (file.size > CheckFileSize()) {
error(
'"' +
fileName +
'" ' +
settings.maxSizeError +
" " +
settings.maxSize
);
dataRemove(fileName);
} else {
allOkey();
}
}
var storedFiles = [];
function fileUpload(e) {
var files = e.files;
var filesArr = Array.prototype.slice.call(files);
filesArr.forEach(function (f) {
storedFiles.push(f);
file(f);
});
}
function fileDelete() {
$(".aks-file-upload-delete").on("click", function () {
var deleteBtn = $(this).data("delete");
var deleteElemet = $('[data-file="' + deleteBtn + '"]');
$(deleteElemet).animate({ height: 0 }, 200);
$(deleteElemet).fadeIn(650);
$(deleteElemet).remove();
dataRemove(deleteBtn);
});
}
function ajaxUpload() {
$(".aks-file-upload-btn").click(function () {
var uploadBtn = $(this).data("upload");
formData.append("file", data["file-" + uploadBtn]);
$.ajax({
url: settings.ajax["url"],
type: settings.ajax["type"],
async: settings.ajax["async"],
data: formData,
contentType: settings.ajax["contentType"],
processData: settings.ajax["processData"],
cache: settings.ajax["cache"],
enctype: settings.ajax["enctype"],
xhr: function () {
var xhr = $.ajaxSettings.xhr();
if (xhr.upload) {
setTimeout(function () {
$('[data-upload="' + uploadBtn + '"]').remove();
}, 40);
setTimeout(function () {
$(
'[data-file="' + uploadBtn + '"] .aks-file-upload-p-header'
).append(
''
);
}, 200);
xhr.upload.addEventListener(
"progress",
function (event) {
var percent = 0;
if (event.lengthComputable) {
percent = Math.ceil((event.loaded / event.total) * 100);
}
$('[data-upload-bar="' + uploadBtn + '"]').css(
"width",
percent + "%"
);
},
false
);
}
return xhr;
},
success: function (response) {
if (response != 0) {
dataDifferent["file-" + uploadBtn].src = response;
isfileUploadInput();
$('[data-upload-bar="' + uploadBtn + '"]').css("width", "100%");
} else {
$('[data-upload-bar="' + uploadBtn + '"]').css(
"background",
"#ff0000"
);
}
}
});
});
if (settings.ajax["directlyLoad"] === true) {
$(".aks-file-upload-btn").each(function (ss, ii) {
$(ii).click();
});
}
}
if (settings.dragDrop === true) {
var dropbox = aks.find(".aks-file-upload");
$(dropbox).on("dragenter", function (ev) {
$(dropbox).addClass("drop-active");
});
$(dropbox).on("dragover", function (ev) {
$(dropbox).addClass("drop-active");
ev.preventDefault();
});
$(dropbox).on("dragleave", function (ev) {
$(dropbox).removeClass("drop-active");
});
$(dropbox).on("drop", function (ev) {
ev.preventDefault();
ev.stopPropagation();
if (ev.originalEvent.dataTransfer) {
if (ev.originalEvent.dataTransfer.files.length) {
var droppedFiles = ev.originalEvent.dataTransfer.files;
for (var i = 0; i < droppedFiles.length; i++) {
file(droppedFiles[i]);
}
}
}
$(dropbox).removeClass("highlightDropArea");
return false;
});
}
$(settings.input).on("change", function () {
fileUpload(this);
});
setInterval(function () {
fileDelete();
if (settings.ajaxUpload === true) {
ajaxUpload();
}
}, 3000);
});
};
})(jQuery);