文件上传
1. html部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文件上传</title>
</head>
<body>
<div>
<button id="upload" class="btn" data-type="upload">点击上传</button>
<input type="file" multiple id="fileInput" name="files" value="" style="display: none;">
</div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="upload.js"></script>
</html>
2. upload.js部分
$(function(){
var currentPage = {
uploadFilesAction: function (params, callback, errorFunc) {
if (params instanceof FormData) {
var files = params.getAll('files');
var flag = true, msg = '';
if (files.length > 5) {
flag = false;
msg = '单次文件上传最多支持五个同时上传';
} else {
for (var i = 0; i < files.length; i++) {
if (files[i].size > 1024 * 1024 * 200) {
flag = false;
msg = '单个文件大小不能超过200MB,请检查';
}
}
}
if (!flag) {
if(errorFunc){
errorFunc();
}
return false;
}
} else {
if(errorFunc){
errorFunc();
}
return false;
}
$.ajax({
type: 'post',
url: '/api/uploadurl',
data: params,
processData: false,
contentType: false,
success: function (res) {
if (callback) {
callback(res);
}
},
error: function (err) {
if(errorFunc){
errorFunc();
}
}
})
},
setListen: function(){
$(document).on('click', '.btn', function(e){
e.preventDefault();
e.stopPropagation();
var _this = e.target;
var type = $(_this).data('type');
if(type === 'upload'){
$("#fileInput").click();
}
})
$(document).on('change', '#fileInput', function(e){
e.preventDefault();
e.stopPropagation();
var _this = e.target;
var files = _this.files;
var formData = new FormData();
for(var i = 0;i < files.length;i++){
formData.append('files', files[i]);
}
currentPage.uploadFilesAction(formData, function(){
}, function(){
});
})
},
pageInit: function(){
currentPage.setListen();
}
}
currentPage.pageInit();
})