API用とフロントエンド用の2つのlaravelプロジェクトがあります。私が達成したいのは、アップロードされたファイルをフロントエンドで送信し、guzzlehttp6 を使用して API に送信することです。これが私のコードです。
フロントエンドララベル:
public function store(Request $request, $module_id)
{
$videos = $request->file('file');
// $name = time().$videos->getClientOriginalName();
// $path = ('videos');
// $videoFinal = $videos->move($path, $name);
$file_name = fopen($videos, 'r');
$client = new Client(['base_uri' => 'http://localhost/api.kourse/public/api/v1/']);
try{
$response = $client->request('POST', 'modules/'.$module_id.'/videos',[
'file_name' => $file_name
]);
}catch(ClientException $e){
return $e->getResponse();
}
}
$videos im を返すと、ファイルのパスが取得されます。
ここに私のAPIがあります
public function store(VideoRequest $request, $moduleId)
{
$module = Module::find($moduleId);
if( !$module )
{
return response()->json([
'message' => 'Module does not exist',
'code' => 404
],404);
}
$file = $request->file('file_name');
$name = time(). $file->getClientOriginalName();
$path = '/videos';
$file->move(public_path().$path, $name);
Video::create([
'file_name' => $name,
'file_path' => $path.$name,
'module_id' => $module->id
]);
return response()->json([
'message' => 'Successfully created and assgin video to this module'
],200);
}
私が得ているのはそれです:
{message: {file_name: ["The file name field is required."]}, code: 422}
code
:
422
私の VideoRequest で定義されているとおりです。
誰でもこれについて私を助けることができますか?