Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 24.01.2019 09:46:42

Генерировать и отдавать файл пользователю

Здравствуйте. Решил прокачивать свой скилл и пора переходить на серьезные фреймворки, хочется учиться делать сразу правильно.
Установил Laravel на VDS, посмотрел пару видеокурсов, почитал статьи и хелпы. На чужих примерах все просто и понятно, но когда дело доходит до своих - начинаешь путаться.
Проект взял простой и небольшой, пользователь заполняет некоторую форму и отправляет её на бекэнд, бекенд из полученных данных генерирует файл и отдает клиенту. Решений подобной задачи в сети много, но даже я понимаю что часть из них неверные.
В первом приближении я вижу логику следующим образом: форма обрабатывается ajax и post запросом идет на бекенд, бекенд обрабатывает и возвращает в ответ файл.

Так вот, как на бекенде правильно организовать логику?
0. Создаем контроллер:

php artisan make:controller FileController

1. Cоздаем маршрут:

Route::post("", "FileController@Generate")

3. примерный код маршрута:

class FileController extends Controller
{
  public function Generate($data) {
    ..генерируем файл...
    $file_path = public_path('files/'.$file_name);
    return response()->download($file_path);
    ..удаляем файл..
  }
}

4. На фронтенде ajax'ом ловим ответ и качаем файл

Такая логика правильная?

p/s ошибся темой, прошу перенести https://laravel.ru/forum/viewforum.php?id=10

Изменено Waik (24.01.2019 10:38:24)

Не в сети

#2 12.04.2019 20:21:00

Re: Генерировать и отдавать файл пользователю

всё бы хорошо, но если файл должен светиться в сео, его должен видеть спайдер-робот того же яндекса?
в этом случае эта практика работать не будет.
ни аяксом ни роутом, так как яндекс не видит контекста .jpg/.pdf итп.

Не в сети

Подвал раздела