创建TXT文件后,Laravel重定向

时间:2018-11-22 03:21:24

标签: php laravel laravel-5 laravel-5.2

我具有创建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);

3 个答案:

答案 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)

您要创建并下载文本文件吗?

  1. 如果您只想创建包含某些内容的文件,则上述解决方案中提供的方法是正确的,即:

    $fileName = "GROUP".$footerExport.".txt"; File::put($fileName,'Your contents here');

然后使用return redirect()->back()->with('Extra data if required');

  1. 如果您还想在本地计算机上创建并保存此文件,那么您将不得不在一个创建某些问题的过程中创建,下载并重定向回去,因此要使用助手来解决简单的解决方案:

    $filename = 'abc.text'; Storage::disk('local')->put('file.txt', 'Contents');

现在在这里,您可以使用put 在会话中保存此文件名,或者可以通过数据发送回去,并且当您重定向使用文件名下载Ajax请求时进行下载文件。 并只需使用download即可将文件下载到您的计算机上,即:

return response()->download(storage_path($filename));

,如果您不想将此文件留在服务器上使用,则用于删除文件

Storage::delete('filename');

希望这会有所帮助。