コード例 #1
0
ファイル: helpers.php プロジェクト: xiewnet/archimore
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]);
}
コード例 #2
0
ファイル: ProjectFile.php プロジェクト: xiewnet/archimore
 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);
         }
     }
 }
コード例 #3
0
ファイル: IndexController.php プロジェクト: xiewnet/archimore
 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)]);
 }