function oss_face_url($object, $size = null) { $sizes = ['s' => 'face-small', 'm' => 'face-middle', 'l' => 'face-large']; if (!isset($sizes[$size])) { $size = 'l'; } if (!$object) { return asset('assets/archimore/img/noface/default.jpg'); } return oss_image_url($object, $sizes[$size]); }
public function getLink($style = null) { if (!$this->url) { return null; } else { if ($this->type == 'image') { return oss_image_url($this->url, $style); } else { return oss_file_url($this->url); } } }
public function postCoverUpload(Request $request) { $content = $request->getContent(); $requestUri = $request->getRequestUri(); $authorization = @base64_decode($request->server('HTTP_AUTHORIZATION')); $ossPubKeyUrl = @base64_decode($request->server('HTTP_X_OSS_PUB_KEY_URL')); $pubKey = @file_get_contents($ossPubKeyUrl); $pos = strpos($requestUri, '?'); if (false === $pos) { $authString = urldecode($requestUri) . "\n" . $content; } else { $authString = urldecode(substr($requestUri, 0, $pos)) . substr($requestUri, $pos, strlen($requestUri) - $pos) . "\n" . $content; } if ($pubKey && openssl_verify($authString, $authorization, $pubKey, OPENSSL_ALGO_MD5)) { try { $id = decrypt($request->input('identifier')); $project = Project::find($id); $config = config('aliyun.oss.archimore'); $oss = new OssClient($config['access_key_id'], $config['access_key_secret'], $config['endpoint'], $config['is_cname'], $config['security_token']); $project->cover && $oss->deleteObject('archimore', $project->cover); $project->cover = $request->input('object'); $project->save(); $data = ['status' => true, 'message' => '上传并保存成功', 'cover' => oss_image_url($project->cover, '400x250')]; } catch (\Exception $e) { $data = ['status' => false, 'message' => '保存失败']; } } else { $data = ['status' => false, 'message' => '上传失败']; } $data = json_encode($data); return response($data, 200, ['Content-Type' => 'application/json', 'Content-Length' => strlen($data)]); }