/** * 添加上传一张图片 * @param array $names * @param array $tags * @param array $desc * @param array $files * @param array $server * @param User $user * @return array */ public function add($names, $tags, $desc, $files, $server, $user) { $this->checkServer($server); $n_c = count($names); $t_c = count($tags); $d_c = count($desc); $f_c = isset($files['name']) ? count($files['name']) : 0; if ($t_c > 20) { $this->throwMsg(-3); } if ($tags == 0 || $t_c !== $d_c || $d_c !== $f_c || $t_c !== $f_c || $n_c != $t_c) { $this->throwMsg(-2); } unset($n_c, $t_c, $d_c, $f_c); c_lib()->load('upload'); $lib = $server['meta']['_Lib'] . ""; $upload = new Upload(['exts' => ['jpg', 'png', 'gif'], 'sub_status' => true, 'replace' => false, 'max_size' => 5 * 1024 * 1024, 'image_info' => true], $lib, $server['meta']); $info = $upload->upload([$files]); for ($i = 0; $i < count($info); $i++) { $info[$i]['key'] = $this->getIndexOfArray($info[$i]['name'], $files['name']); } $rt = ['list' => [], 'error' => []]; foreach ($info as $v) { $tmp = $this->insert_data($v['save_path'] . $v['save_name'], $server, $names[$v['key']], $tags[$v['key']], $desc[$v['key']], $user->getId(), $v['image']['width'], $v['image']['height']); if (is_int($tmp)) { $rt['list'][] = $tmp; } else { $rt['error'][] = $tmp; } } return $rt; }
/** * @param User $user */ public function upload_avatar($user) { c_lib()->load('upload'); $upload = new Upload(['root_path' => 'avatar', 'exts' => ['jpg', 'png'], 'sub_status' => false, 'name_callback' => [function ($param) { return $param; }, $user->getId()], 'replace' => true, 'max_size' => 500 * 1024, 'save_ext' => 'jpg'], 'Local'); if (!isset($_FILES['avatar'])) { $this->throwMsg(-16); } $info = $upload->uploadOne($_FILES['avatar']); lib()->load('Avatar'); $avatar = new Avatar(); $avatar->process_avatar($info['save_name'], 400, 400); }