PHP,Laravelを用いてwebアプリを作成しており、AWSのS3に画像をアップロードしたいです。
送信画面を押すと、エラーは出ないのですが、awsのs3のバケットのオブジェクトに画像が保存されていません。
composer require league/flysystem-aws-s3-v3 "~1.0"
composer updateは実行済みで
.envファイルのAWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY
WS_DEFAULT_REGION=ap-northeast-1、AWS_BUCKETどれも設定済みです。
プラウザのconsoleには画像のようにstatus:200と表示されます。
どうか、アドバイスをいただきたいです。よろしくお願いします。
<template> <div> <input type="file" accept="image/jpeg, image/png" @change="onChangeImage" /> <button @click="postImage">送信</button> </div> </template> <script> import axios from 'axios'; export default { data() { return { image: {} }; }, methods: { onChangeImage: function(e) { this.image = e.target.files[0]; }, postImage: function() { const config = { header: { "Content-Type": "multipart/form-data" } }; var formData = new FormData(); formData.append("image", this.image); axios.post("/post/s3/image", formData, config).then(res => { console.log(res); }); } } }; </script>
PostImageController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Storage; class PostImageController extends Controller { public function s3(Request $request) { $disk = Storage::disk('s3'); $image = $request->image; $path = $disk->putFile('images', $image,'public'); return response()->json(['response'=>$path],200); } }
回答1件
あなたの回答
tips
プレビュー