/** * 统一构造话柄的函数 * @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参数,自动找最新的层 }); }