Переадресация Laravel после создания файла TXT - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть функция, которая создает файл 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 голосов
/ 22 ноября 2018

Я не знаю, почему вы создаете файл таким образом

Я хочу поделиться с вами своим путем

Вы можете создать файл с File фасадом

Пример:

$fileName = "GROUP".$footerExport.".txt";

File::put($fileName,'Your contents here');

И после этого просто перенаправьте на предыдущий маршрут

return back();

Дайте мне знать, если это вам поможет или нет

0 голосов
/ 22 ноября 2018

Вы хотите создать и загрузить текстовый файл:

  1. Если вы просто хотите создать файл с некоторым содержимым, то способ, указанный в приведенном выше решении, является правильным, то есть:

    $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 или отправить обратно через data икогда вы перенаправляете запускаете ajax-запрос с именем файла для загрузки файла .и просто используйте команду download, чтобы загрузить файл на свой компьютер, например:

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

, и для удаления файла, если вы не хотите оставлять этот файл на сервере, используйте

Storage::delete('filename');

Надеюсь, что этопомогает.

0 голосов
/ 22 ноября 2018

вы можете сделать перенаправление с помощью return back () -> with (['data']) .. для более https://laravel.com/docs/5.7/redirects

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...