じろう

2019年11月02日に参加

学習履歴詳細

[Laravel]課題アプリ作成。InterventionImageを使って、画像のアップロード前にリサイズをかけてみる。

今日のYWT

やったこと

Travelog

画像圧縮

  • 方法を調べる
  • Intervention Imageを使ってみることにする
    • Qiitaの記事通りやってみるものの、うまくいかない
    • Articleと紐付いていることと、保存先のパスが間違っていた
    • 画像のアップロードはできるが、storage_keyに入れるための画像パスがうまく取得できない
    • 強引に文字列連結してなんとかする

わかったこと

Intervention Image

  • 画像圧縮してからアップロードのコード
        // 画像アップロード
        if ($request->file('files')) {
            foreach ($request->file('files') as $index=>$e) {
                // $storage_key = $e['photo']->store('uploads', 'public');
                $filename = $e['photo']->getClientOriginalName();
                $photo = Image::make($e['photo'])
                    ->resize(800, null, function ($constraint) {$constraint->aspectRatio();})
                    ->save(storage_path('app/public/uploads/' . $filename));

                $article->photos()->create([
                    'name' => $filename,
                    'storage_key' => 'uploads/' . $storage_key->filename . "." . $storage_key->extension,
                    ]);
            }
        }

Image::makeで画像ファイルのための場所を新規作成する感じ?
resizeでリサイズ
->save()で変更内容を保存

AWS Lambda

  • サーバーレス
  • コードを実行する環境だけを提供
  • サーバーがないのでサーバー維持費的なものがかからない

次やること

  • ファイルパスは今かなり強引な方法で取得しているけどこれをどうにかしたい
PHP
Docker
Laravel

2020年11月02日(月)

3.1時間