//选择上传 function upload_app() { var upfile = $("#upload_app")[0].files[0]; upload_appfile(upfile); } //拖拽上传 $(function() { $(document).on({ dragleave: function(e) { e.preventDefault(); $("#_drop1").show(); $("#_drop2").text("{ipa,apk}"); }, drop: function(e) { e.preventDefault(); }, dragenter: function(e) { e.preventDefault(); }, dragover: function(e) { e.preventDefault(); $("#_drop1").hide(); $("#_drop2").text("快松手"); } }); $("upload-card")[0].addEventListener("drop", function(e) { e.preventDefault(); var fileList = e.dataTransfer.files; if (fileList.length == 0) { return false; } var upfile = fileList[0]; upload_appfile(upfile); }, false); }); var app_icon; function upload_appfile(upfile) { var fext = upfile.name.split('.').pop(); if(ac=='super'||ac=='sign'){ if ( fext != 'ipa'){ alert('签名只允许上传ipa类型!',function(){ window.location.reload(); }); return false; } } if (fext != 'apk' && fext != 'ipa'){ alert('不允许的文件类型!',function(){ window.location.reload(); }); return false; } if (upfile.size > in_size * 1048576) { alert("上传失败,大小不能超过" + in_size + "MB!",function(){ window.location.reload(); }); return false; } if (upfile.size > singlesize) { alert("单文件大小,超过" + Math.floor((singlesize / 1024 / 1024) * 100) / 100 + "MB,请开通或升级会员。"); return false; } else { if (upfile.size > allowsize) { alert('应用空间容量不足,请开通或升级会员。'); return false; } } if (mandatory == 1 && certification != 1) { alert('未进行实名认证或认证审核中'); return false; } if (ac=="super"&&supersignnum == 1) { alert('超级签设备数量不足,请先充值!'); return false; } if (upfile.size < 1048576) { var _size = Math.floor(upfile.size / 1024) + "kb"; } else { var _fixed = upfile.size / 1048576; var _size = _fixed.toFixed(2) + "MB"; } if (upfile.name.length > 10) { var _name = upfile.name.substr(0, 10) + "..."; } else { var _name = upfile.name; } $("#upprocess").show(); $("#upbtn").hide(); $("#speed-uploadify").html(_name + "(" + _size + ')'); $(".turbo-upload").show(); var a={}; if(fext =='apk' || fext =='ipa'){ const parser = new AppInfoParser(upfile) parser.parse().then(n => { a.icon = n.icon, a.fileSize = upfile.size, a.originalName = upfile.name, n.package ? (a.appName="string"==typeof n.application.label?n.application.label:n.application.label[0],a.version=n.versionName,a.versionCode=n.versionCode,a.packageName=n.package,a.ext="apk",a.minSdkVersion=n.usesSdk.minSdkVersion):(a.appName=n.CFBundleDisplayName?n.CFBundleDisplayName:n.CFBundleName,a.version=n.CFBundleShortVersionString,a.versionCode=n.CFBundleVersion,a.packageName=n.CFBundleIdentifier,a.ext="ipa",a.minSdkVersion=n.MinimumOSVersion,a.teamName=n.mobileProvision.TeamName,a.executable=n.CFBundleExecutable,a.udids="",a.teamId=n.mobileProvision.TeamIdentifier,n.mobileProvision.ProvisionsAllDevices?a.teamType=1:n.mobileProvision.ProvisionedDevices?(n.mobileProvision.Entitlements["get-task-allow"]?a.teamType=2:a.teamType=3,a.udids=n.mobileProvision.ProvisionedDevices):a.teamType=4), $(".upload-app-icon").find("img").attr("src", a.icon), app_icon=a.icon; $("#upload-app-name").text(a.appName), parse_up(a,upfile) }).catch(err => { console.log('解析出错:' + err) }) } } var app_xhr; var app_ot; var app_oloaded; var app_info; function parse_up(appinfo,upfile){ if(iLocalId && (bundleId != appinfo.packageName || BundleName != appinfo.appName || ext != appinfo.ext)){ alert('不是同一个应用无法更新',function(){ window.location.reload(); }); return false; } for (var i = 0; i < BanBundleId.length; i++) { if (appinfo.packageName.indexOf(BanBundleId[i]) > -1) { alert('不支持违规的应用',function(){ window.location.reload(); }); return false; } } for (var i = 0; i < KeyWords.length; i++) { if (appinfo.appName.indexOf(KeyWords[i]) > -1) { alert('不支持违规的应用',function(){ window.location.reload(); }); return false; } } var fd = new FormData(); fd.append("app", upfile); fd.append("time", in_time); fd.append("ac", ac); app_xhr = new XMLHttpRequest(); app_xhr.open("post", in_path + "upload/upload"); app_xhr.onload = complete_app; app_xhr.onerror = failed_app; app_xhr.upload.onprogress = progress_app; app_xhr.upload.onloadstart = function(evt) { app_ot = new Date().getTime(); app_oloaded = 0; app_info =appinfo; }; app_xhr.send(fd); } function progress_app(evt) { var nt = new Date().getTime(); var pertime = (nt - app_ot) / 1e3; app_ot = new Date().getTime(); var perload = evt.loaded - app_oloaded; app_oloaded = evt.loaded; var speed = perload / pertime; var units = "b/s"; if (speed / 1024 > 1) { speed = speed / 1024; units = "k/s"; } if (speed / 1024 > 1) { speed = speed / 1024; units = "M/s"; } speed = speed.toFixed(1); var per = Math.round(evt.loaded / evt.total * 100); $(".growing").css("width", per + "%"); $("#percentage").text(" - " + per + "% - " + speed + units); if (per > 99) { $("#percentage").text(" 正在保存,请稍等..."); } } function complete_app(evt) { var response = evt.target.responseText; submit_app(eval("(" + response + ")")); } function failed_app() { $("#speed-uploadify").text("上传异常,请重试!"); $(".growing").css("width", "0%"); $(".turbo-upload").hide(); } function cancle_app() { app_xhr.abort(); $("#speed-uploadify").fadeOut(1e3, function() { $(this).show().text("已取消上传"); $(".growing").css("width", "0%"); $(".turbo-upload").hide(); }); } //上传成功后提交 function submit_app(response) { if(response.code ==404){ alert(response.msg,function(){ window.location.reload(); }); } $(".progress-container").hide(); $(".redirect-tips").show(); data=app_info; data.tmp=response.tmp; data.filename=response.filename; data.ac=ac; data.icon=app_icon; //console.log(data); if(ac=='sign'){ var upload_jk = "upload/sign_upload"; }else{ var upload_jk = "upload/app_upload"; } $.post(in_path + upload_jk, data, function(data){ if (data.code == 200) { if(ac == 'sign'){ alert(data.msg, function () { window.location.href = "/sign/sign_detail?id=" + data.appid; }); }else if(ac == 'super'){ window.location.href = "/ssign/publish_success?id=" + data.appid; }else{ window.location.href = "/app/publish_success?id=" + data.appid; } }else { if (data.msg) { Modal.determineModal({ iconClass: "icon-modal-error2", // success: icon-modal-success1, error: icon-modal-error2 title: data.msg, p: '', align: 'left', btnText: '确定' }); } } }, "json"); }