123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- <?php
- // by 请勿倒卖,已申请软著,否则追究法律责任
- namespace app\upload;
- use CFPropertyList\CFPropertyList;
- use PclZip;
- use PngFile\PngFile;
- class admin
- {
- function apk()
- {
- include "deapk/examples/autoload.php";
- error_reporting(0);
- if (empty($_COOKIE["in_adminid"]) || empty($_COOKIE["in_adminname"]) || empty($_COOKIE["in_adminpassword"]) || empty($_COOKIE["in_permission"]) || empty($_COOKIE["in_adminexpire"]) || !db("admin")->where("in_adminid", intval($_COOKIE["in_adminid"]))->value("in_adminid") || md5(db("admin")->where("in_adminid", intval($_COOKIE["in_adminid"]))->value("in_adminpassword")) !== $_COOKIE["in_adminpassword"]) {
- exit("-1");
- }
- $time = $_GET["time"];
- $xml_size = $_GET["size"];
- $tmp = IN_TMP_PATH . $time . ".apk";
- $explode = explode("_", $time);
- $icontime = md5($explode[0] . "_" . $explode[1] . "_" . rand(2, pow(2, 24))) . ".png";
- $apptime = md5($explode[1] . "_" . $explode[0] . "_" . rand(2, pow(2, 24))) . ".apk";
- $apk = new \ApkParser\Parser($tmp);
- $xml_mnvs = $apk->getManifest()->getMinSdkLevel();
- $xml_bid = $apk->getManifest()->getPackageName();
- $xml_bsvs = $apk->getManifest()->getVersionName();
- $xml_bvs = $apk->getManifest()->getVersionCode();
- $labelResourceId = $apk->getManifest()->getApplication()->getLabel();
- $appLabel = $apk->getResources($labelResourceId);
- $xml_name = detect_encoding($appLabel[0]);
- $resourceId = $apk->getManifest()->getApplication()->getIcon();
- $resources = $apk->getResources($resourceId);
- foreach ($resources as $resource) {
- fwrite(fopen(IN_ATTACHMENT_PATH . $icontime, "w"), stream_get_contents($apk->getStream($resource)));
- }
- $function = PHP_OS == "Linux" ? "rename" : "copy";
- $function($tmp, IN_ATTACHMENT_PATH . $apptime);
- echo "{'name':'" . $xml_name . "','mnvs':'" . $xml_mnvs . "','bid':'" . $xml_bid . "','bsvs':'" . $xml_bsvs . "','bvs':'" . $xml_bvs . "','form':'Android','nick':'*','type':'0','team':'*','icon':'" . $icontime . "','app':'" . $apptime . "','size':'" . $xml_size . "'}";
- }
- function ipa()
- {
- require_once "depng/pngCompote.php";
- require_once "deplist/CFPropertyList.php";
- error_reporting(0);
- if (empty($_COOKIE["in_adminid"]) || empty($_COOKIE["in_adminname"]) || empty($_COOKIE["in_adminpassword"]) || empty($_COOKIE["in_permission"]) || empty($_COOKIE["in_adminexpire"]) || !db("admin")->where("in_adminid", intval($_COOKIE["in_adminid"]))->value("in_adminid") || md5(db("admin")->where("in_adminid", intval($_COOKIE["in_adminid"]))->value("in_adminpassword")) !== $_COOKIE["in_adminpassword"]) {
- exit("-1");
- }
- $time = $_GET["time"];
- $tmp = IN_TMP_PATH . $time . ".ipa";
- $explode = explode("_", $time);
- $icontime = md5($explode[0] . "_" . $explode[1] . "_" . rand(2, pow(2, 24))) . ".png";
- $apptime = md5($explode[1] . "_" . $explode[0] . "_" . rand(2, pow(2, 24))) . ".ipa";
- $dir = IN_TMP_PATH . $time . "/Payload";
- if (is_dir($dir)) {
- rename($tmp, IN_ATTACHMENT_PATH . $apptime);
- $d = NULL;
- $h = opendir($dir);
- while ($f = readdir($h)) {
- if ($f != "." && $f != ".." && is_dir($dir . "/" . $f)) {
- $d = $dir . "/" . $f;
- }
- }
- closedir($h);
- $info = file_get_contents($d . "/Info.plist");
- $plist = new CFPropertyList();
- $plist->parse($info);
- $plist = $plist->toArray();
- $xml_size = $_GET["size"];
- $xml_name = detect_encoding(isset($plist["CFBundleDisplayName"]) ? $plist["CFBundleDisplayName"] : $plist["CFBundleName"]);
- $xml_mnvs = $plist["MinimumOSVersion"];
- $xml_bid = $plist["CFBundleIdentifier"];
- $xml_bsvs = $plist["CFBundleShortVersionString"];
- $xml_bvs = $plist["CFBundleVersion"];
- $newfile = IN_ATTACHMENT_PATH . $icontime;
- $icon = $plist["CFBundleIcons"]["CFBundlePrimaryIcon"]["CFBundleIconFiles"];
- if (!$icon) {
- $icon = $plist["CFBundleIconFiles"];
- if (!$icon) {
- $icon = $plist["CFBundleIconFiles~ipad"];
- }
- }
- if (preg_match("/\\./", $icon[0])) {
- $cvt = is_file($d . "/" . $icon[0]) ? "trim" : "strtolower";
- for ($i = 0; $i < count($icon); $i++) {
- if (is_file($d . "/" . $cvt($icon[$i]))) {
- $big[] = filesize($d . "/" . $cvt($icon[$i]));
- $small[] = filesize($d . "/" . $cvt($icon[$i]));
- }
- }
- rsort($big);
- sort($small);
- for ($p = 0; $p < count($icon); $p++) {
- if ($big[0] == filesize($d . "/" . $cvt($icon[$p]))) {
- $bigfile = $d . "/" . $cvt($icon[$p]);
- }
- if ($small[0] == filesize($d . "/" . $cvt($icon[$p]))) {
- $smallfile = $d . "/" . $cvt($icon[$p]);
- }
- }
- } else {
- $ext = is_file($d . "/" . $icon[0] . ".png") ? ".png" : "@2x.png";
- for ($i = 0; $i < count($icon); $i++) {
- if (is_file($d . "/" . $icon[$i] . $ext)) {
- $big[] = filesize($d . "/" . $icon[$i] . $ext);
- $small[] = filesize($d . "/" . $icon[$i] . $ext);
- }
- }
- rsort($big);
- sort($small);
- for ($p = 0; $p < count($icon); $p++) {
- if ($big[0] == filesize($d . "/" . $icon[$p] . $ext)) {
- $bigfile = is_file($d . "/" . $icon[$p] . "@3x.png") ? $d . "/" . $icon[$p] . "@3x.png" : $d . "/" . $icon[$p] . $ext;
- }
- if ($small[0] == filesize($d . "/" . $icon[$p] . $ext)) {
- $smallfile = preg_match("/AppIcon20x20/", $icon[$p]) ? $d . "/" . $icon[$p] . "@3x.png" : $d . "/" . $icon[$p] . $ext;
- }
- }
- }
- $png = new PngFile($smallfile);
- if (!$png->revertIphone($newfile)) {
- if (!rename($bigfile, $newfile)) {
- if ($plist["CFBundleIconFile"]) {
- if (preg_match("/\\./", $plist["CFBundleIconFile"])) {
- rename($d . "/" . $plist["CFBundleIconFile"], $newfile);
- } else {
- rename($d . "/" . $plist["CFBundleIconFile"] . ".png", $newfile);
- }
- } else {
- copy(IN_ROOT . "static/index/image/iOS.png", $newfile);
- }
- }
- }
- $em = file_get_contents($d . "/embedded.mobileprovision");
- rename($d . "/embedded.mobileprovision", str_replace(".png", ".mobileprovision", $newfile));
- $xml_nick = preg_match("/<key>Name<\\/key>\r\n([\\s\\S]+?)<string>([\\s\\S]+?)<\\/string>/", $em, $m) ? mb_convert_encoding($m[2], set_chars(), "HTML-ENTITIES") : "*";
- $xml_type = preg_match("/^iOS Team Provisioning Profile:/", $xml_nick) ? 0 : 1;
- $xml_team = preg_match("/<key>TeamName<\\/key>\r\n([\\s\\S]+?)<string>([\\s\\S]+?)<\\/string>/", $em, $m) ? mb_convert_encoding($m[2], set_chars(), "HTML-ENTITIES") : "*";
- echo "{'name':'" . $xml_name . "','mnvs':'" . $xml_mnvs . "','bid':'" . $xml_bid . "','bsvs':'" . $xml_bsvs . "','bvs':'" . $xml_bvs . "','form':'iOS','nick':'" . $xml_nick . "','type':'" . $xml_type . "','team':'" . $xml_team . "','icon':'" . $icontime . "','app':'" . $apptime . "','size':'" . $xml_size . "'}";
- }
- }
- function open()
- {
- if (!isAdminLogin()) {
- exit(iframe_message("请先登录管理中心!"));
- }
- ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html lang="">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=<?php echo IN_CHARSET;?>" />
- <title>上传应用</title>
- <link href="<?php echo IN_PATH;?>static/pack/upload/uploadify.css" rel="stylesheet" type="text/css" />
- <script src="<?php echo IN_PATH;?>static/pack/layer/jquery.js"></script>
- <script src="<?php echo IN_PATH;?>static/pack/upload/uploadify.js"></script>
- <script>
- var in_php = '/upload/admin/uplog';
- var in_post = '<?php echo $_COOKIE["in_adminid"];?>_<?php echo time();?>';
- var in_size = <?php echo intval(ini_get("upload_max_filesize"));?>;
- function return_response(response){
- if (response == -1) {
- $(".uploadifySuccess").hide();
- $(".uploadifyError").show().text("文件不规范,请重新选择!");
- } else {
- ReturnValue(eval('(' + response + ')'));
- }
- }
- function ReturnValue(response){
- $("#fileQueue").html('<div class="uploadifyQueueItem">正在解析应用,请稍等...</div>');
- var xhr = new XMLHttpRequest();
- xhr.onreadystatechange = function() {
- processAJAX();
- };
- xhr.open("GET", "<?php echo IN_PATH;?>source/pack/upload/admin-" + response.extension + ".php?time=" + response.time + "&size=" + response.size, true);
- xhr.send(null);
- function processAJAX() {
- if (xhr.readyState == 4) {
- if (xhr.status == 200) {
- if (xhr.responseText == -1) {
- $("#fileQueue").html('<div class="uploadifyQueueItem">Access denied</div>');
- return false;
- }
- var data = eval('(' + xhr.responseText + ')');
- parent.$("#in_name").val(data.name);
- parent.$("#in_mnvs").val(data.mnvs);
- parent.$("#in_bid").val(data.bid);
- parent.$("#in_bsvs").val(data.bsvs);
- parent.$("#in_bvs").val(data.bvs);
- parent.$("#in_form").val(data.form);
- parent.$("#in_nick").val(data.nick);
- parent.$("#in_type").val(data.type);
- parent.$("#in_team").val(data.team);
- parent.$("#in_icon").val(data.icon);
- parent.$("#in_app").val(data.app);
- parent.$("#in_size").val(data.size);
- parent.$("#btnsave").click();
- }
- }
- }
- }
- </script>
- </head>
- <body>
- <div id="fileQueue">
- <div class="uploadifyQueueItem uploadifySuccess" style="display:none">
- <div class="cancel">
- <a href="javascript:cancle()"><img src="<?php echo IN_PATH;?>static/pack/upload/cancel.png" border="0"></a>
- </div>
- <span class="fileName"></span><span class="percentage"></span>
- <div class="uploadifyProgress">
- <div class="uploadifyProgressBar"></div>
- </div>
- </div>
- <div class="uploadifyQueueItem uploadifyError" style="display:none"></div>
- </div>
- <input type="file" id="uploadify" onchange="uploadify()" style="display:none">
- <img src="<?php echo IN_PATH;?>static/pack/upload/up.png" style="cursor:pointer" onclick="$('#uploadify').click()">
- </body>
- </html><?php
- }
- function open_icon()
- {
- if (!isAdminLogin()) {
- exit(iframe_message("请先登录管理中心!"));
- }
- $_var_0 = SafeRequest("id", "get");
- ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html lang="">
- <meta http-equiv="Content-Type" content="text/html; charset=<?php echo IN_CHARSET;?>" />
- <title>上传图标</title>
- <link href="<?php echo IN_PATH;?>static/pack/upload/uploadify.css" rel="stylesheet" type="text/css" />
- <script src="<?php echo IN_PATH;?>static/pack/layer/jquery.js"></script>
- <script src="<?php echo IN_PATH;?>static/pack/upload/uploadify.js"></script>
- <script>
- var in_php = '/upload/admin/up_icon';
- var in_post = '{"_id":"<?php echo $_GET["id"];?>","_aid":"<?php echo $_COOKIE["in_adminid"];?>","_apw":"<?php echo $_COOKIE["in_adminpassword"];?>"}';
- var in_size = 2;
- var id= "<?php echo $_var_0;?>";
- function return_response(response){
- if (response == -1) {
- $(".uploadifySuccess").hide();
- $(".uploadifyError").show().text("文件不规范,请重新选择!");
- } else {
- if(response){
- if(id=="IN_WXQRCODE"||id=="IN_LOGO"){
- parent.setImageVal(id,response);
- }else {
- parent.$("#in_icon").val(response);
- parent.$("#btnsave").click();
- }
- }
- }
- }
- </script>
- </head>
- <body>
- <div id="fileQueue">
- <div class="uploadifyQueueItem uploadifySuccess" style="display:none">
- <div class="cancel">
- <a href="javascript:cancle()"><img src="<?php echo IN_PATH;?>static/pack/upload/cancel.png" border="0"></a>
- </div>
- <span class="fileName"></span><span class="percentage"></span>
- <div class="uploadifyProgress">
- <div class="uploadifyProgressBar"></div>
- </div>
- </div>
- <div class="uploadifyQueueItem uploadifyError" style="display:none"></div>
- </div>
- <input type="file" id="uploadify" onchange="uploadify()" style="display:none">
- <img src="<?php echo IN_PATH;?>static/pack/upload/up.png" style="cursor:pointer" onclick="$('#uploadify').click()">
- </body>
- </html><?php
- }
- function up_icon()
- {
- $_var_1 = json_decode(stripslashes($_POST["post"]), true);
- if ($_var_1["_id"] == "IN_WXQRCODE" || $_var_1["_id"] == "IN_LOGO") {
- $_var_2 = pathinfo($_FILES["file"]["name"]);
- if (in_array(strtolower($_var_2["extension"]), array("jpg", "jpeg", "gif", "png"))) {
- $_var_3 = "data/image/" . $_var_1["_id"] . ".png";
- @move_uploaded_file($_FILES["file"]["tmp_name"], IN_ROOT . $_var_3);
- echo $_var_3;
- } else {
- echo "-1";
- }
- } else {
- $_var_4 = intval($_var_1["_id"]);
- $_var_5 = intval($_var_1["_aid"]);
- $_var_6 = $_var_1["_apw"];
- $_var_7 = db("app")->where("in_id", $_var_4)->value("in_icon");
- if (!db("admin")->where("in_adminid", $_var_5)->value("in_adminid") || md5(db("admin")->where("in_adminid", $_var_5)->value("in_adminpassword")) !== $_var_6) {
- exit("Access denied");
- }
- if (!empty($_FILES)) {
- $_var_8 = stristr($_var_7, "/") ? substr(strrchr($_var_7, "/"), 1) : $_var_7;
- $_var_2 = pathinfo($_FILES["file"]["name"]);
- if (in_array(strtolower($_var_2["extension"]), array("jpg", "jpeg", "gif", "png"))) {
- $_var_3 = IN_ATTACHMENT_PATH . $_var_8;
- @move_uploaded_file($_FILES["file"]["tmp_name"], $_var_3);
- echo $_var_8;
- } else {
- echo "-1";
- }
- }
- }
- }
- function uplog()
- {
- if (!empty($_FILES)) {
- $_var_9 = pathinfo($_FILES["file"]["name"]);
- $_var_10 = strtolower($_var_9["extension"]);
- if (in_array($_var_10, array("ipa", "apk"))) {
- $_var_11 = $_POST["post"];
- preg_match("/^(\\d+\\_\\d+)\$/", $_var_11) or exit("-1");
- $_var_12 = IN_TMP_PATH . $_var_11 . "/";
- if (!is_dir($_var_12)) {
- @mkdir($_var_12, 0777, true);
- }
- $_var_13 = IN_TMP_PATH . $_var_11 . "." . $_var_10;
- @move_uploaded_file($_FILES["file"]["tmp_name"], $_var_13);
- if ($_var_10 == "ipa") {
- $_var_14 = new PclZip($_var_13);
- $_var_14->extract(PCLZIP_OPT_PATH, $_var_12, PCLZIP_OPT_BY_PREG, "/^Payload\\/.*.app\\/Info.plist\$/");
- $_var_14->extract(PCLZIP_OPT_PATH, $_var_12, PCLZIP_OPT_BY_PREG, "/^Payload\\/.*.app\\/embedded.mobileprovision\$/");
- $_var_14->extract(PCLZIP_OPT_PATH, $_var_12, PCLZIP_OPT_BY_PREG, "/^Payload\\/.*.app\\/(?!.*\\/).*.png\$/");
- }
- echo "{'extension':'" . $_var_10 . "','time':'" . $_var_11 . "','size':'" . $_FILES["file"]["size"] . "'}";
- } else {
- echo "-1";
- }
- }
- }
- }
|