//功能描述:绑定上传 idBtnAddWeb.onclick = function () { var success = lggupload.OpenFileDialog(); if (success == 1) { lggupload.Upload(); } } //功能描述:上传之前检测 PreUpload: function (file_index) { if (isNaN(file_index)) { lggupload.Error("参数错误"); return false; } var file_name = lggupload.GetFileNameById(file_index); if (file_name == "") { return false; } if (form.fnHasFile(file_name)) { alert("文件名称重复..."); return false; } return true; }, //功能描述:上传文件 UploadFile: function (file_name) { if (file_name == undefined || file_name == null || file_name == "") { return "error"; } var arr_file_name = file_name.split(';'); for (var i = 0; i < arr_file_name.length; i++) { if (arr_file_name[i]) { var file_fid = "", file_url = ""; if (arr_file_name[i].indexOf('$') > 0) { file_fid = arr_file_name[i].split('$')[0]; file_url = arr_file_name[i].split('$')[1]; lggupload.file_upload.push({ file_fid: file_fid, file_url: file_url }); } else { file_url = arr_file_name[i]; } //添加文件 lggupload.AddFile(file_url); //输出调试信息 DebugView.Message({ name: "UploadFile,上传文件", message: "file_name:" + arr_file_name[i] }); } } //开始上传 lggupload.Upload(); }, //功能描述:上传 Upload: function () { var files = lggupload.GetFiles(); //输出调试信息 DebugView.Message({ name: "Upload,上传", message: "文件数量:" + files }); //根据文件数量,进行上传 if (files > 0) { //开始上传 lggupload.httpPost(0); //回传状态 Bridge.ReturnValue("status", "1"); } else { //回传状态 Bridge.ReturnValue("status", "2"); } }, //功能描述:上传事件 UploadEvent: function (p1, p2, p3) { //0;1;FileParts=14;CurrentFilePart=1;PassTime=00:00:02;RemainTime=00:00:11;Speed=1097 var file_index = Number(p1); var file_count = Number(p2); var file_param; try { //输出调试信息 DebugView.Message({ name: "UploadEvent,上传事件", message: "抛出参数:" + p3 }); file_param = JSON.parse("{\"" + p3.replace(/;$/g, "").replace(/;/g, "\",\"").replace(/=/g, "\":\"") + "\"}"); } catch (e) { //输出调试信息 DebugView.Message({ name: "UploadEvent,上传事件", message: "参数异常~!" + p3 }); return; } var file_parts = Number(file_param.FileParts); var file_part = Number(file_param.CurrentFilePart); var file_pass_time = file_param.PassTime || "00:00:00"; var file_remain_time = file_param.RemainTime || "00:00:00"; var file_speed = file_param.Speed || "0"; if (file_part == 1) { lggupload.idProgressStatus.innerHTML = language.UPLOADING; } //设置进度 var percent = (file_part + 1) / file_parts; lggupload.idProgressBar.style.width = Core.FormatPercent(percent * 100); lggupload.idProgressPercent.innerHTML = Core.FormatPercent(percent * 100); lggupload.idProgressUploaded.innerHTML = Core.FormatBytes(percent * lggupload.file_size); lggupload.idProgressSpeed.innerHTML = Core.FormatBPS(file_speed * 1024); lggupload.idProgressPassTime.innerHTML = file_pass_time; lggupload.idProgressRemainTime.innerHTML = file_remain_time; //设置上传状态 form.fnFileUploading({ id: lggupload.file_sequence }); //判断当前文件是否传输完毕 if (file_part + 1 == file_parts) { form.fnFileComplete({ id: lggupload.file_sequence }); //file_sequence自增1 lggupload.file_sequence++; if (file_index == file_count - 1) { //绑定文件事件 form.fnFileEvent(); //清空上传队列 lggupload.Empty(); //输出调试信息 DebugView.Message({ name: "UploadEvent,上传事件", message: "全部上传完毕" }); //回传状态 Bridge.ReturnValue("status", "0"); } else { //延时1秒钟,发起新的文件传输请求 setTimeout(function () { file_index++; //输出调试信息 DebugView.Message({ name: "UploadEvent,上传事件", message: "发起新的文件上传:" + file_index }); //发起httpPost请求 lggupload.httpPost(file_index); }, 1000); } } }, /*以下为封装后的Lgg控件方法*/ //功能描述:以Http POST方式将文件内容发给服务器 //返回值:1-成功, 0-失败 httpPost: function (file_index) { if (!lggupload.PreUpload(file_index)) { lggupload.Empty(file_index); return ""; } //获取文件大小 lggupload.file_size = lggupload.GetFileSize(file_index) * 1024; //获取分包大小 lggupload.file_part_size = lggupload.GetFilePartSize(file_index); //获取文件名称 var file_name = lggupload.GetFileNameById(file_index); if (file_name == "") { lggupload.Empty(file_index); return ""; } //加载表单记录 var file_fid = Core.GetGUID(); if (file_fid == "") { lggupload.Empty(file_index); return ""; } var file_zip = lggupload.file_compress == "zip" ? "1" : "0"; var file = { id: lggupload.file_sequence, name: file_name, fillname: lggupload.file_psnname, fid: file_fid, zip: file_zip } form.fnFileWaiting(file); //拼装URL参数 var file_url = lggupload.GetUrl(file_name, file_index, file_fid); //拼装httpPost参数 var strparam = Core.GetKeyValue("url", file_url, ""); strparam += Core.GetKeyValue("index", file_index, "0"); strparam += Core.GetKeyValue("mode", lggupload.file_upload_mode, "asynch"); strparam += Core.GetKeyValue("isEcho", lggupload.file_is_echo, "false"); strparam += Core.GetKeyValue("PartSize", lggupload.file_part_size, "0"); strparam += Core.GetKeyValue("StartPart", lggupload.file_start_part, "0"); strparam += Core.GetKeyValue("Compress", lggupload.file_compress, "zip"); //输出调试信息 DebugView.Message({ name: "httpPost,以Http POST方式将文件内容发给服务器", message: "抛出参数:" + strparam }); //发起httpPost请求 lggupload.AF.func("httpPost", strparam); //初始化进度条 lggupload.ResetProgress(file.name, language.COMPRESS); }, //功能描述:打开文件选择对话框,相当于模拟点击右侧小按钮 //返回值:1/0 - 对话框确认/取消 OpenFileDialog: function () { var success = lggupload.AF.func("OpenFileDialog", ""); return success; }, //功能描述:清空选中的文件, 以便再次使用 //返回值:无 Empty: function (file_index) { file_index = file_index || ""; lggupload.AF.func("Empty", file_index); }