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 "}"; }
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'; }
$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 {
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 . "}"; }