예제 #1
0
function outputJson($hosts, $services, $program)
{
    // begin outputting XML
    header("Content-type: application/json");
    echo "{" . "\n";
    // program status
    if ($program != "") {
        echo '  "programStatus": {' . "\n";
        foreach ($program as $key => $val) {
            echo '    "' . jsonString($key) . '": "' . jsonString($val) . '"' . (isLast($program, $key) ? '' : ',') . "\n";
        }
        unset($key, $val);
        echo '  },' . "\n";
    }
    // hosts
    echo '  "hosts": {' . "\n";
    foreach ($hosts as $hostName => $hostArray) {
        echo '   "' . jsonString($hostName) . '": {' . "\n";
        foreach ($hostArray as $key => $val) {
            echo '      "' . jsonString($key) . '": "' . jsonString($val) . '"' . (isLast($hostArray, $key) ? '' : ',') . "\n";
        }
        unset($key, $val);
        echo '   }' . (isLast($hosts, $hostName) ? '' : ',') . "\n";
    }
    unset($hostName, $hostArray);
    echo '  },' . "\n";
    // loop through the services
    echo '  "services": {' . "\n";
    foreach ($services as $hostName => $service) {
        echo '   "' . jsonString($hostName) . '": {' . "\n";
        foreach ($service as $serviceDesc => $serviceArray) {
            echo '   "' . jsonString($serviceDesc) . '": {' . "\n";
            foreach ($serviceArray as $key => $val) {
                echo '      "' . jsonString($key) . '": "' . jsonString($val) . '"' . (isLast($serviceArray, $key) ? '' : ',') . "\n";
            }
            unset($key, $val);
            echo '   }' . (isLast($service, $serviceDesc) ? '' : ',') . "\n";
        }
        echo '   }' . (isLast($services, $hostName) ? '' : ',') . "\n";
        unset($serviceDesc, $serviceArray);
    }
    unset($hostName, $service);
    echo '  }' . "\n";
    echo "}";
}
예제 #2
0
            if ($immediate == '1') {
                $targetPath = '!' . $targetPath;
            }
            if ($msgType == 1) {
                $msg = "/'{$targetPath}'";
            } else {
                $msg = "{'url':'/" . $targetPath . "','localname':'" . jsonString($localName) . "','id':'1'}";
            }
            //id参数固定不变,仅供演示,实际项目中可以是数据库ID
        }
    } else {
        $err = '上传文件扩展名必需为:' . $upExt;
    }
    @unlink($tempPath);
}
echo "{'err':'" . jsonString($err) . "','msg':" . $msg . "}";
function jsonString($str)
{
    return preg_replace("/([\\\\\\/'])/", '\\\\$1', $str);
}
function formatBytes($bytes)
{
    if ($bytes >= 1073741824) {
        $bytes = round($bytes / 1073741824 * 100) / 100 . 'GB';
    } elseif ($bytes >= 1048576) {
        $bytes = round($bytes / 1048576 * 100) / 100 . 'MB';
    } elseif ($bytes >= 1024) {
        $bytes = round($bytes / 1024 * 100) / 100 . 'KB';
    } else {
        $bytes = $bytes . 'Bytes';
    }
예제 #3
0
                 $thumbfile = '../' . $attachSubDir . '/' . $newFilename . '_small.jpg';
                 if ($img_width > $thumb_width || $img_height > $thumb_height) {
                     require_once libfile('class/image');
                     $img = new image();
                     if (!$img->Thumb($targetPath, $thumbfile, $thumb_width, $thumb_height)) {
                         $return_array = array("errcode" => 'e_2013', "errmsg" => lang('error', 'e_2013'), "data" => $msg);
                         echo json_ext($return_array);
                         //echo "{'err':'".lang('error','e_2013')."','msg':".$msg."}";
                         die;
                     }
                 } else {
                     upload_file($targetPath, $targetPath . '_small.jpg');
                 }
             }
             $target_path = str_replace(SITE_ROOT, '', $targetPath);
             $target_path_json = jsonString($target_path);
             if ($msgType == 1) {
                 $msg = "'{$target_path_json}'";
             } else {
                 $msg = array('url' => $target_path, 'file_name' => $file_name);
             }
         }
     } else {
         $return_array = array("errcode" => 'e_2014', "errmsg" => lang('error', 'e_2014') . $upExt, "data" => $msg);
     }
     @unlink($tempPath);
 }
 if (file_exists($targetPath)) {
     $return_array = array("errcode" => 'e_2000', "errmsg" => lang('error', 'e_2000'), "data" => $msg);
     //echo "{'err':'".jsonString($err)."','msg':".$msg."}";
 } else {
예제 #4
0
 function xheditorUpload()
 {
     header('Content-Type: text/html; charset=UTF-8');
     $inputName = 'filedata';
     //表单文件域name
     $attachDir = 'Uploads/Xheditor';
     //上传文件保存路径,结尾不要带/
     $dirType = 2;
     //1:按天存入目录 2:按月存入目录 3:按扩展名存目录  建议使用按天存
     $maxAttachSize = 209715200;
     //最大上传大小,默认是2M
     $upExt = 'txt,rar,zip,jpg,jpeg,gif,png,swf,wmv,avi,wma,mp3,mid,docx,doc,xls,xlsx';
     //上传扩展名
     $msgType = 2;
     //返回上传参数的格式:1,只返回url,2,返回参数数组
     $immediate = isset($_GET['immediate']) ? $_GET['immediate'] : 0;
     //立即上传模式,仅为演示用
     ini_set('date.timezone', 'Asia/Shanghai');
     //时区
     $err = "";
     $msg = "''";
     $tempPath = $attachDir . '/' . date("YmdHis") . mt_rand(10000, 99999) . '.tmp';
     $localName = '';
     if (isset($_SERVER['HTTP_CONTENT_DISPOSITION']) && preg_match('/attachment;\\s+name="(.+?)";\\s+filename="(.+?)"/i', $_SERVER['HTTP_CONTENT_DISPOSITION'], $info)) {
         //HTML5上传
         file_put_contents($tempPath, file_get_contents("php://input"));
         $localName = $info[2];
     } else {
         //标准表单式上传
         $upfile = @$_FILES[$inputName];
         if (!isset($upfile)) {
             $err = '文件域的name错误';
         } elseif (!empty($upfile['error'])) {
             switch ($upfile['error']) {
                 case '1':
                     $err = '文件大小超过了php.ini定义的upload_max_filesize值';
                     break;
                 case '2':
                     $err = '文件大小超过了HTML定义的MAX_FILE_SIZE值';
                     break;
                 case '3':
                     $err = '文件上传不完全';
                     break;
                 case '4':
                     $err = '无文件上传';
                     break;
                 case '6':
                     $err = '缺少临时文件夹';
                     break;
                 case '7':
                     $err = '写文件失败';
                     break;
                 case '8':
                     $err = '上传被其它扩展中断';
                     break;
                 case '999':
                 default:
                     $err = '无有效错误代码';
             }
         } elseif (empty($upfile['tmp_name']) || $upfile['tmp_name'] == 'none') {
             $err = '无文件上传';
         } else {
             move_uploaded_file($upfile['tmp_name'], $tempPath);
             $localName = $upfile['name'];
         }
     }
     if ($err == '') {
         $fileInfo = pathinfo($localName);
         $extension = $fileInfo['extension'];
         if (preg_match('/' . str_replace(',', '|', $upExt) . '/i', $extension)) {
             $bytes = filesize($tempPath);
             if ($bytes > $maxAttachSize) {
                 $err = '请不要上传大小超过' . formatBytes($maxAttachSize) . '的文件';
             } else {
                 switch ($dirType) {
                     case 1:
                         $attachSubDir = 'day_' . date('ymd');
                         break;
                     case 2:
                         $attachSubDir = 'month_' . date('ym');
                         break;
                     case 3:
                         $attachSubDir = 'ext_' . $extension;
                         break;
                 }
                 $attachDir = $attachDir . '/' . $attachSubDir;
                 if (!is_dir($attachDir)) {
                     @mkdir($attachDir, 0777);
                     @fclose(fopen($attachDir . '/index.htm', 'w'));
                 }
                 PHP_VERSION < '4.2.0' && mt_srand((double) microtime() * 1000000);
                 $newFilename = date("YmdHis") . mt_rand(1000, 9999) . '.' . $extension;
                 $targetPath = $attachDir . '/' . $newFilename;
                 rename($tempPath, $targetPath);
                 @chmod($targetPath, 0755);
                 $targetPath = jsonString($targetPath);
                 if ($immediate == '1') {
                     $targetPath = '!' . $targetPath;
                 }
                 if ($msgType == 1) {
                     $msg = "'{$targetPath}'";
                 } else {
                     $msg = "{'url':'/" . $targetPath . "','localname':'" . jsonString($localName) . "','id':'1'}";
                 }
                 //id参数固定不变,仅供演示,实际项目中可以是数据库ID
             }
         } else {
             $err = '上传文件扩展名必需为:' . $upExt;
         }
         @unlink($tempPath);
     }
     echo "{'err':'" . jsonString($err) . "','msg':" . $msg . "}";
 }