/**
* 统一构造话柄的函数
* @returns
*/
function pluploadCallbackFuncForCover() {
return {
FilesAdded: pluploadFuncFilesAddedForCover,
UploadProgress: pluploadFuncUploadProgressForCover,
FileUploaded: pluploadFuncFileUploadedForCover,
UploadComplete: pluploadFuncUploadCompleteForCover,
Error: pluploadFuncErrorForCover
}
}
/**
* 单个文件上传函数
* @param string idName 标识
* @param Object cbFuncObjs 回掉函数对象.
* @returns
*/
function pluploadOneCover(idName, cbFuncObjs, type = 'image') {
var isMulitSelection = false; // 是否允许多选.
var mimeTypes = pluploadSelectMime(type); // 定义可选择的文件类型
var multipartParams = {
'upload_token': window._UPLOAD_TOKEN_, // 必写,通信token
'receive_type': 'plupload', // 必写. 接收响应格式.
'ext_type': 'image', // 必写. 后端允许的文件格式类型组,多个半角逗号分隔开.
'module_id': "video",
'related_id': GetQueryString('uid'),
'max_width': "1024",
'max_height': "2000"
};
var chunkMaxSizeKb = 10 * 1024; // 10M
var uploadMaxSizeKb = 1000 * 1024; //1000M
return pluploadBase(idName, isMulitSelection, mimeTypes, multipartParams, chunkMaxSizeKb, uploadMaxSizeKb, true, cbFuncObjs);
}
/**
* plupload选中文件后回调
*/
function pluploadFuncFilesAddedForCover(idName, up, files) {
layui.use(['jquery', 'element', 'layer'], function () {
let $ = layui.jquery;
let element = layui.element;
let layer = layui.layer;
let previewId = 'pl_preview_' + idName;
let file = files[0];
pluploadPreviewImage(file, function (b64url) {
$('#' + previewId).attr('src', b64url);
});
let progressId = 'pl_progress_' + idName;
element.progress(progressId, '0%'); //进度条复位
layer.msg('上传中', {icon: 16, time: 0, shade: 0.3, shadeClose: false});
});
}
/**
* plupload上传过程中回调
*/
function pluploadFuncUploadProgressForCover(idName, up, file) {
layui.use(['jquery', 'element', 'layer'], function () {
let $ = layui.jquery;
let element = layui.element;
let layer = layui.layer;
// 隐藏按钮
let btnId = 'pl_btn_select_' + idName;
$('#' + btnId).hide();
let progressId = 'pl_progress_' + idName;
element.progress(progressId, file.percent + '%');
});
}
/**
* plupload单个文件上传完回调
*/
function pluploadFuncFileUploadedForCover(idName, up, file, info) {
layui.use(['jquery', 'element', 'layer'], function () {
let $ = layui.jquery;
let element = layui.element;
let layer = layui.layer;
let previewId = 'pl_preview_' + idName;
let obj = $.parseJSON(info.response);
if (obj.hasOwnProperty('result')) {
let result = obj.result;
$('#' + idName).val(result.link_url);
if (file.name.slice(-3) === 'ceb'){
$('#' + previewId).attr('data-ceb-url', result.link_url);
onceRender($('#' + previewId));
}
} else {
if (obj.hasOwnProperty('error')) {
let errorInfo = obj.error;
let resultId = 'pl_result_' + idName;
let hcode = '[' + errorInfo.code + '错误信息]【' + file.name + '】' + errorInfo.message + '';
$('#' + resultId).html(hcode);
let progressId = 'pl_progress_' + idName;
element.progress(progressId, '0%'); //进度条复位
}
}
// 显示按钮
// let btnId = 'pl_btn_select_' + idName;
// $('#' + btnId).show();
});
}
/**
* plupload所有文件上传完回调
*/
function pluploadFuncUploadCompleteForCover(idName, up, files) {
layui.use(['jquery', 'element', 'layer'], function () {
let $ = layui.jquery;
let element = layui.element;
let layer = layui.layer;
let resultId = 'pl_result_' + idName;
$('#' + resultId).empty();
layer.close(layer.index); // 关闭加载层,layer.index参数,自动找最新的层
// 显示按钮
let btnId = 'pl_btn_select_' + idName;
$('#' + btnId).show();
});
}
/**
* plupload错误回调
*/
function pluploadFuncErrorForCover(idName, up, err) {
layui.use(['jquery', 'element', 'layer'], function () {
let $ = layui.jquery;
let element = layui.element;
let layer = layui.layer;
// 显示按钮
let btnId = 'pl_btn_select_' + idName;
$('#' + btnId).show();
let resultId = 'pl_result_' + idName;
let hcode = '[' + err.code + '错误信息]' + err.message + '';
$('#' + resultId).html(hcode);
layer.close(layer.index); // 关闭加载层,layer.index参数,自动找最新的层
});
}