我使用Laravel 5.3并需要上传一个xml文件,然后将内容提交给api。客户端希望将其作为2个按钮/用户功能,用户应首先上传文件,然后再次单击提交内容。
上传工作正常,xml读取和提交到api也正常工作。我无法让我的上传控制器将文件名传递给提交控制器。没有必要存储文件名以供将来使用,并且进程将相互跟随 - 即用户将上传一个文件并提交,然后上传下一个文件并提交。
任何帮助都将受到高度赞赏
上传功能:
public function handleUpload(Request $request)
{
$file = $request->file('file');
$allowedFileTypes = config('app.allowedFileTypes');
$rules = [
'file' => 'required|mimes:'.$allowedFileTypes
];
$this->validate($request, $rules);
$fileName = $file->getClientOriginalName();
$destinationPath = config('app.fileDestinationPath').'/'.$fileName;
$uploaded = Storage::put($destinationPath, file_get_contents($file->getRealPath()));
if($uploaded) {
$file_Name = ($_FILES['file']['name']);
}
return redirect()->to('/upload');
}
提交功能:
public function vendorInvoice()
{
$fileName = $file_Name;
$destinationPath = storage_path('app/uploads/');
$xml = file_get_contents($destinationPath.$fileName);
$uri = "some uri";
try {
$client = new Client();
$request = new Request('POST', $uri, [
'Authorization' => '$username',
'ContractID' => '$id',
'content-type' => 'application/xml'
],
$xml);
$response = $client->send($request);
}
catch (RequestException $re) {
//Exception Handling
echo $re;
}
}