function upload_image($input, $image = null, $type = 'team', $scale = false) { $year = date('Y'); $day = date('md'); $n = time() . rand(1000, 9999) . '.jpg'; $z = $_FILES[$input]; $filename = $z["tmp_name"]; $image_size = getimagesize($filename); if ($z && strpos($z['type'], 'image') === 0 && $z['error'] == 0) { if (!$image) { RecursiveMkdir(IMG_ROOT . '/' . "{$type}/{$year}/{$day}"); $image = "{$type}/{$year}/{$day}/{$n}"; $path = IMG_ROOT . '/' . $image; } else { RecursiveMkdir(dirname(IMG_ROOT . '/' . $image)); $path = IMG_ROOT . '/' . $image; } if ($type == 'user') { Image::Convert($z['tmp_name'], $path, 48, 48, Image::MODE_CUT); } else { if ($type == 'team') { move_uploaded_file($z['tmp_name'], $path); mark_image($image_size, $path, IMG_ROOT . '/logo.png'); } } if ($type == 'team' && $scale) { $npath = preg_replace('#(\\d+)\\.(\\w+)$#', "\\1_index.\\2", $path); Image::Convert($path, $npath, 190, 120, Image::MODE_CUT); } return $image; } return $image; }
function uploadfile($inputname) { global $INI; $immediate = isset($_GET['immediate']) ? $_GET['immediate'] : 0; $attachdir = 'upload'; //上传文件保存路径,结尾不要带/ $dirtype = 1; //1:按天存入目录 2:按月存入目录 3:按扩展名存目录 建议使用按天存 $maxattachsize = 2097152; //最大上传大小,默认是2M $upext = 'jpg,jpeg,gif,png'; //上传扩展名 $msgtype = 2; //返回上传参数的格式:1,只返回url,2,返回参数数组 $err = ""; $msg = ""; if (!isset($_FILES[$inputname])) { return array('err' => '文件域的name错误或者没选择文件', 'msg' => $msg); } $upfile = $_FILES[$inputname]; if (!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 { $fileinfo = pathinfo($upfile['name']); $extension = strtolower($fileinfo['extension']); if (preg_match('/' . str_replace(',', '|', $upext) . '/i', $extension)) { $filesize = $upfile['size']; if ($filesize > $maxattachsize) { $err = '文件大小超过' . $maxattachsize . '字节'; } else { $year = date('Y'); $day = date('md'); $n = time() . rand(1000, 9999) . '.jpg'; $attach_dir = IMG_ROOT . "/team/{$year}/{$day}"; RecursiveMkdir(IMG_ROOT . "/team/{$year}/{$day}"); $fname = time() . rand(1000, 9999) . '.' . $extension; $target = $attach_dir . '/' . $fname; if (is_resource($upfile['tmp_name'])) { $data = fread($upfile['tmp_name'], $filesize); file_put_contents($target, $data); $image_size = getimagesize($target); mark_image($image_size, $target, IMG_ROOT . '/logo.png'); fclose($upfile['tmp_name']); } else { move_uploaded_file($upfile['tmp_name'], $target); $image_size = getimagesize($target); mark_image($image_size, $target, IMG_ROOT . '/logo.png'); @unlink($upfile['tmp_name']); } $target = $INI['system']['imgprefix'] . "/static/team/{$year}/{$day}/{$fname}"; if ($immediate == '1') { $target = '!' . $target; } if ($msgtype == 1) { $msg = $target; } else { $msg = array('url' => $target, 'localname' => $upfile['name'], 'id' => '1'); } //id参数固定不变,仅供演示,实际项目中可以是数据库ID } } else { $err = '上传文件扩展名必需为:' . $upext; } if (is_resource($upfile['tmp_name'])) { fclose($upfile['tmp_name']); } else { @unlink($upfile['tmp_name']); } } return array('err' => $err, 'msg' => $msg); }