123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- //选择上传
- 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 + ')<span id="percentage"></span>');
- $(".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");
- }
|