我有两个 laravel 项目,一个用于 API,一个用于前端。我想要实现的是在我的前端发送上传的文件并使用 guzzlehttp6 将其发送到我的 API。这是我的代码。
前端 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 中定义的那样。
谁可以帮我这个事。