Paste the following code into the head section of your site’s HTML.
<link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/ax5ui/ax5ui-dialog/master/dist/ax5dialog.css">
<link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/ax5ui/ax5ui-uploader/master/dist/ax5uploader.css">
<link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/ax5ui/ax5ui-grid/master/dist/ax5grid.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/ax5ui/ax5core/master/dist/ax5core.min.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/ax5ui/ax5ui-dialog/master/dist/ax5dialog.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/ax5ui/ax5ui-uploader/master/dist/ax5uploader.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/ax5ui/ax5ui-grid/master/dist/ax5grid.min.js"></script>
<script src="https://cdn.rawgit.com/thomasJang/jquery-direct/master/dist/jquery-direct.min.js"></script>
HTML(code)
<div style="position: fixed;left:0;top:0;width:100%;height:100%;background: #ccc;z-index: 1000;display: none;opacity: 0.8;text-align: center;color: #000;" id="dragover">
<table width="100%" height="100%">
<tr>
<td valign="middle" align="center"><h1>Drop the file here.</h1></td>
</tr>
</table>
</div>
<div class="DH20"></div>
<div data-ax5uploader="upload1">
<button data-ax5uploader-button="selector" class="btn btn-primary">Select File (*/*)</button>
(Upload Max fileSize 20MB)
</div>
<div class="DH10"></div>
<div data-ax5grid="first-grid" data-ax5grid-config="{
header: {align: 'center'},
showLineNumber: false,
showRowSelector: true,
multipleSelect: false,
lineNumberColumnWidth: 40,
rowSelectorColumnWidth: 27
}" style="height: 150px;"></div>
<div style="padding: 10px 0;" data-btn-wrap>
<button class="btn btn-default btn-sm" data-upload-btn="removeFile">removeFile</button>
</div>Drop the file here. |
<script type="text/javascript">
$(function () {
var API_SERVER = "http://api-demo.ax5.io";
var DRAGOVER = $("#dragover");
/// dialog
var DIALOG = new ax5.ui.dialog({
title: "AX5UI"
});
/// upload
var UPLOAD = new ax5.ui.uploader({
//debug: true,
target: $('[data-ax5uploader="upload1"]'),
form: {
action: API_SERVER + "/api/v1/ax5uploader",
fileName: "file"
},
multiple: true,
dropZone: {
target: $(document.body),
onclick: function () {
// 사용을 원하는 경우 구현
return;
if (!this.self.selectFile()) {
console.log("파일 선택 지원 안됨");
}
},
ondragover: function () {
//this.self.$dropZone.addClass("dragover");
DRAGOVER.show();
DRAGOVER.on("dragleave", function () {
DRAGOVER.hide();
});
},
ondragout: function () {
//this.self.$dropZone.removeClass("dragover");
},
ondrop: function () {
DRAGOVER.hide();
}
},
validateSelectedFiles: function () {
console.log(this);
// 10개 이상 업로드 되지 않도록 제한.
if (this.uploadedFiles.length + this.selectedFiles.length > 10) {
alert("You can not upload more than 10 files.");
return false;
}
return true;
},
onuploaderror: function () {
console.log(this.error);
dialog.alert(this.error.message);
},
onuploadComplete: function () {
ACTIONS["UPDATE_uploaded"](this.self.uploadedFiles);
}
});
/// grid
var GRID = new ax5.ui.grid({
target: $('[data-ax5grid="first-grid"]'),
columns: [
{key: "fileName", label: "fileName", width: 200},
{key: "fileSize", label: "fileSize", align: "right", formatter: function () {
return ax5.util.number(this.value, {byte: true});
}},
{key: "ext", label: "ext", align: "center", width: 60},
{key: "createdAt", label: "createdAt", align: "center", width: 140, formatter: function () {
return ax5.util.date(this.value, {"return": "yyyy/MM/dd hh:mm:ss"});
}},
{key: "download", label: "down", width: 60, align: "center", formatter: function () {
return '<i class="fa fa-download" aria-hidden="true"></i>'
}}
],
body: {
onClick: function () {
if(this.column.key == "download" && this.item.download){
location.href = API_SERVER + this.item.download;
}
}
}
});
/// ACTIONS
var ACTIONS = {
"INIT": function () {
// 컨트롤 버튼 이벤트 제어
uploadView.initView();
},
"GET_grid": function (data) {
return GRID.getList(data);
},
"GET_uploaded": function () {
// 업로드 파일 가져오기
$.ajax({
method: "GET",
url: API_SERVER + "/api/v1/ax5uploader",
success: function (res) {
uploadView.setData(res);
}
});
},
"DELETE_files": function (data) {
$.ajax({
contentType: "application/json",
method: "post",
url: API_SERVER + "/api/v1/ax5uploader/delete",
data: JSON.stringify(data),
success: function (res) {
if (res.error) {
alert(res.error.message);
return;
}
ACTIONS["GET_uploaded"]();
}
});
},
"UPDATE_uploaded": function (data) {
GRID.setData(data);
}
};
/// uploadView
var uploadView = {
initView: function () {
$('[data-btn-wrap]').clickAttr(this, "data-upload-btn", {
"removeFile": function () {
var deleteFiles = ACTIONS["GET_grid"]("selected");
if (deleteFiles.length == 0) {
alert("No list selected.");
return;
}
DIALOG.confirm({
title: "AX5UI",
msg: "Are you sure you want to delete it?"
}, function () {
if (this.key == "ok") {
ACTIONS["DELETE_files"](deleteFiles);
}
});
}
});
},
setData: function (data) {
UPLOAD.setUploadedFiles(data);
GRID.setData(UPLOAD.uploadedFiles);
}
};
ACTIONS["INIT"]();
ACTIONS["GET_uploaded"]();
});
</script>
'AX5UI' can be used with Bootstrap theme. The development of the distribution of the various UI plug-in. When you click the link to move to AX5UI index page.
AXBoot makes it easy to build web applications with Java & HTML5 Repeatable and noise development process are resolved by AXBoot.