写真や画像をアップロードするアプリをLaravel5.4作ってるのですが、iPhoneからアップすると縦だと思ってた写真が横になってアップされてしまうという現象が出ていました。
これはExifというものが問題になっているらしく修正を行ったので手順を書いておきたいと思います。
Exifの詳細はこの辺を参考にさせていただきました。ブラウザとか環境ごとに挙動が異なっていたりするようです。
https://qiita.com/RichardImaokaJP/items/385beb77eb39243e50a6
#controllerの修正
僕の場合幸いIntervention/Imageを元から使っていたので、orientate()という関数があることを知りイージーにそれで対応を試みることに。
http://image.intervention.io/
Image::make('/tmp/'.$name)
->resize(700, null, function ($constraint) { $constraint->aspectRatio(); } )
->save('/tmp/'.$regular_name);
みたいなコードをcontrollerの書いてたので、
ここにorientate()を処理に追加すれば大丈夫そう。
Image::make('/tmp/'.$name)
->resize(700, null, function ($constraint) { $constraint->aspectRatio(); } )
->orientate()
->save('/tmp/'.$regular_name);
と追加。
で試してみるとエラー。
#ext-exifの追加
ExifがPHP側で必要みたいなので
Composer.jsonに
"ext-exif":"*"
を追加。
"require": {
-省略-
"ext-exif":"*"
},
コンソールから
Composer update
Herokuへもアップ。
Git push heroku master
ローカル環境とHeroku、両方問題なく動いています。