質問お願いします。
現在、Docker
でLEMP
環境を構築して日記アプリを開発しています。
画像を含んだ日記を投稿したところ、iPhone
で撮影したHEIC
形式の画像がアップロードできず、調べたところImageMagick
を使ってHEIC
をJPEG
に変換しなければいけないということで、下記を参考にDocker
にImageMagick
をインストールしました。
そしてdocker-compose exec app bash
でphp
のコンテナ内に入ってconvert --version
したら下記のメッセージが出るところまでは上手くいきました。
php
1# convert --version 2Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org 3Copyright: © 1999-2019 ImageMagick Studio LLC 4License: https://imagemagick.org/script/license.php 5Features: Cipher DPC Modules OpenMP 6Delegates (built-in): bzlib djvu fftw fontconfig freetype heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png tiff webp wmf x xml zlib
そこからブラウザでアプリを開き、日記投稿画面(create.blade.php
)で日記(画像やタイトル、日記の内容)を投稿しようとしたところ、エラー等は出ないのですが、下記のように何も反映されていない状態の投稿画面(create.blade.php
)に戻ります。
(JPEG
とかPNG
形式の画像だと投稿ボタンを押すと日記の内容が反映されて日記一覧ページ(index.blade.php
)に画面遷移するのですが、HEIC
形式だと何も反映されずに投稿画面に戻ります)。
投稿した後の画面遷移
分かる方いましたらご教授お願いします。
↓投稿処理の内容
public function store(Request $request) { // インスタンス作成 $post = new Post; // ユーザーid取得 $post->user_id = $request->user()->id; // $requestにformからのデータが格納されているので、以下のようにそれぞれ代入する $inputs = request()->validate([ 'picture'=>'image', 'title'=>'required|max:255', 'diary'=>'required|max:255', ]); // 画像ファイルの保存場所指定 if(request('picture')) { $filename = request()->file('picture')->getClientOriginalName(); $inputs['picture'] = request('picture')->storeAs('public/image', $filename); } // 保存 $post->fill($inputs)->save(); // 保存後に一覧ページへリダイレクト return redirect()->route('posts.index'); }