質問するログイン新規登録

質問編集履歴

1

ソースコードの追記

2020/07/07 23:52

投稿

takaoS
takaoS

スコア9

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,7 @@
1
1
  ### 実現したいこと
2
2
 
3
+ // 追記:すみません、書くべき情報が全く足りていなかったので、追加しました。
4
+
3
5
  canvasで表示した画像をフォームでPOST送信し、その画像をS3バケットに保存したいです。
4
6
 
5
7
  ### 前提
@@ -18,6 +20,13 @@
18
20
  is_file() expects parameter 1 to be a valid path, string given
19
21
  ```
20
22
 
23
+ Contorollerの
24
+
25
+ ```
26
+ $path = Storage::disk('s3')->putFile('/', $canvas, 'public');
27
+ ```
28
+ の一文が関係していると思うのですが、ちゃんと第1引数にpathを指定しているので、原因がわからないです。
29
+
21
30
  ### 該当のソースコード
22
31
 
23
32
  ```
@@ -103,10 +112,50 @@
103
112
 
104
113
  ```
105
114
 
115
+ ```
106
- ### 試したこと
116
+ // Controller
107
117
 
108
- ここに問題に対して試したことを記載してください。
118
+ <?php
109
119
 
110
- ### 補足情報(FW/ツールのバージョンなど)
120
+ namespace App\Http\Controllers;
111
121
 
122
+ use Illuminate\Http\Request;
123
+ use Illuminate\Support\Facades\Storage;
124
+ use App\Models\ImagePath;
125
+
126
+ class CameraController extends Controller
127
+ {
128
+ public function index()
129
+ {
130
+ return view('capture_image');
131
+ }
132
+
133
+ public function store(Request $request)
134
+ {
135
+ $canvas = $request->input('upload_image');
136
+
112
- ここにより詳細な情報を記載してください。
137
+ if (isset($canvas)) {
138
+ $canvas = preg_replace('<data:image/jpeg;base64,>', '', $canvas);
139
+ $canvas = base64_decode($canvas);
140
+ //Storage::disk('public')->put('sample.jpeg', $canvas);
141
+ $path = Storage::disk('s3')->putFile('/', $canvas, 'public');
142
+
143
+ $image_path = new ImagePath;
144
+ //$image_path->path = asset('storage/sample.jpeg');
145
+ $image_path->path = Storage::disk('s3')->url($path);
146
+ $image_path->save();
147
+ }
148
+
149
+ return redirect(/*secure_*/url('/'));
150
+ }
151
+
152
+ public function index_video()
153
+ {
154
+ return view('capture_video_image');
155
+ }
156
+ }
157
+ ```
158
+
159
+ ### 試したこと
160
+
161
+ AWSのEC2上でも試してみましたが、同じエラーが出ました。