https://aimaker.io/app/image-classification/id/5629の下の方にあるAPIを使う! にある通り laravel5.5から利用したいのですが、print_r($response);の表示はArray ( [state] => 0 [messages] => Array ( [0] => 不正な画像ファイルです。 ) )となります。
写真をアップして利用するアプリです。アップしたものをAIメーカーのAPIに送って猫かどうかを判定させたいです。
php
1 public function store(Request $request) 2 { 3 $validator = Validator::make($request->all(),[ 4 'photo' => 'required|image|max:5120', 5 ]); 6 7 if ($validator->fails()){ 8 return back()->withErrors($validator)->withInput(); 9 } 10 11 //apiに写真をアップし猫かどうかの判定、猫でなければもう一度アップ画面に遷移、猫なら保存 12 $ch = curl_init(); 13 curl_setopt_array($ch, [ 14 CURLOPT_URL => "https://aimaker.io/image/classification/api", 15 CURLOPT_POST => true, 16 CURLOPT_POSTFIELDS => [ 17 'id' => 5629, 18 'apikey' => "c28f3694803e7631c5feb0831f29be77a0a03197bec8f9d55204f77db57bd7dfb3a10fa3f7d3b0ddf229f1d62a648243", 19 // 'file' => new \CURLFile(public_path('cat.jpg')), 20 'file' => new \CURLFile($_FILES["photo"]["tmp_name"]), 21 ], 22 CURLOPT_HTTPHEADER => ['Content-Type:multipart/form-data'], 23 CURLOPT_SSL_VERIFYPEER => false, 24 CURLOPT_RETURNTRANSFER => true, 25 ]); 26 27 $result = curl_exec($ch); 28 $response = json_decode($result, true); 29 print_r($response); 30 curl_close($ch); 31 dd($ch); 32 つづく
試したこと
'file' => new \CURLFile(public_path('cat.jpg')),
でcloud9のIDEのpublicフォルダの写真をAPIにPOSTすると以下のようなレスポンスが返ってきました。うまくいっているようです。
Array ( [url] => https://aimaker.io/uptmp/e77445bcc825dc0389448c0c83d47f4ea582ac36.jpg [labels] => Array ( [0] => Array ( [score] => 1 [label] => 猫 ) [1] => Array ( [score] => 0 [label] => 犬 ) ) [state] => 1 )
'file' => new \CURLFile($_FILES["photo"]["tmp_name"]),
のように自分のアプリからアップロードした物をPOSTすると下記のように不正な画像と言われます。
Array ( [state] => 0 [messages] => Array ( [0] => 不正な画像ファイルです。 ) )
どうやったら解決できそうでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。