0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

(laravel) Content-Type: image/jpeg のリクエストを受け取って保存する

Last updated at Posted at 2021-08-31

概要

LINE の Messaging API が画像ファイルを直接渡す形になっていたので、真似するために調べた。

普通は multipart/form-data の方が $request->validate() も使えて扱いやすい。

環境

  • PHP 7.4.22
  • Laravel 8.56.0
  • Laravel Sail 1.10.1

実装

Route::post('test', function (Request $request) {
    $content = $request->getContent(true);
    Storage::put('test.jpg', $content);
});

取得

getContent() の第一引数を true にすると resource として取得する。

$content = $request->getContent(true);

保存

resource はそのまま Storage::put() などに渡して保存できる。

Storage::put('test.jpg', $content);

動作確認

curl を使って確認する場合、-T, --upload-file <file> オプションにファイルパスを指定する。

curl -X POST http://localhost/test
    -H 'Content-Type: image/jpeg'
    -T ./image.jpg

storage/app/test.jpg が作成されているのを確認した。

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?