0

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 で定義されているとおりです。

誰でもこれについて私を助けることができますか?

4

0 に答える 0