无法使用guzzle上传文件并发送到laravel API

时间:2016-06-23 01:36:07

标签: laravel laravel-5.1 laravel-5.2 guzzle guzzle6

我有两个laravel项目,一个用于API,一个用于前端。我想要实现的是在我的前端发送上传的文件,并使用guzzlehttp6将其发送到我的API。这是我的代码。

FrontEnd Laravel:

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时。

这是我的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中定义。

任何人都可以帮我这个。

0 个答案:

没有答案