我具有创建TXT文件的功能。成功创建TXT文件时,我正在尝试使用参数重定向到同一页面。
$fileName = "GROUP".$footerExport.".txt";
$headers = [
'Content-type' => 'text/plain',
'Content-Disposition' => sprintf('attachment; filename="%s"', $fileName)
];
return Response::make($output, 200, $headers);
我在返回之前尝试过header
也不起作用。成功创建TXT文件时还有其他重定向方式吗?
$url = action('ECFTController@payECFT', ['ClaimPeriod' => $claimPeriod, 'CategoryID' => $CategoryID]);
header('Location: '.$url);
return Response::make($output, 200, $headers);
答案 0 :(得分:0)
您可以通过返回back()-> with(['data'])来进行重定向。 更多https://laravel.com/docs/5.7/redirects
答案 1 :(得分:0)
我不知道你为什么用这种方式创建文件
我想和你分享我的方式
您可以使用File
门面创建文件
示例:
$fileName = "GROUP".$footerExport.".txt";
File::put($fileName,'Your contents here');
然后,只需重定向到上一条路线
return back();
让我知道这是否对您有帮助
答案 2 :(得分:0)
您要创建并下载文本文件吗?
如果您只想创建包含某些内容的文件,则上述解决方案中提供的方法是正确的,即:
$fileName = "GROUP".$footerExport.".txt";
File::put($fileName,'Your contents here');
然后使用return redirect()->back()->with('Extra data if required');
如果您还想在本地计算机上创建并保存此文件,那么您将不得不在一个创建某些问题的过程中创建,下载并重定向回去,因此要使用助手来解决简单的解决方案:>
$filename = 'abc.text';
Storage::disk('local')->put('file.txt', 'Contents');
现在在这里,您可以使用put 在会话中保存此文件名,或者可以通过数据发送回去,并且当您重定向使用文件名下载Ajax请求时进行下载文件。 并只需使用download即可将文件下载到您的计算机上,即:
return response()->download(storage_path($filename));
,如果您不想将此文件留在服务器上使用,则用于删除文件
Storage::delete('filename');
希望这会有所帮助。