Laravel Redirect:: withInput()
как говорится в заголовке-я пытаюсь перенаправить назад на предыдущую страницу с входными данными, например:
return Redirect::back()->withInput();
он работает как предназначен для регулярного ввода, но не для файлов! Есть ли обходной путь для этого? Таким образом, после перенаправления предыдущий файл будет выбран снова.
5 ответов
Это не сработает.
когда вы перенаправляете что-то в Laravel, он хранит $_POST и $_GET в сеансе, чтобы вернуть вам данные в следующем запросе. Файлы поставляются в специальном PHP global var, $_FILES, потому что они на самом деле не в памяти, они находятся на диске и просто некоторая информация о них в памяти.
хранение этих файлов в сеансе может стоить слишком много ресурсов, представьте, что вы храните их в сеансе, который вы храните в базе данных... Да, Laravel или Symfony могут создать слой справиться с этим, на первый взгляд, легко, но, похоже, они просто решили этого не делать.
Итак, ИМО, если они вам нужны в следующем запросе, переместите их во временную область и Session::put() информацию о них, чтобы вы могли просто Session:: get() их в следующем запросе.
Как уже упоминалось здесь, нет прямого способа сделать это. Ценным решением может быть сохранение файла где-то при загрузке, а затем заполнение формы после перенаправления дополнительным полем ввода, содержащим информацию о ранее загруженном файле. Таким образом, вы сможете решить на стороне сервера, взять старый (в случае, если не был загружен новый файл) или новый.
Я бы пошел на подход java-script, просто проверьте входные данные в браузере с помощью java-script, если вход хорош, пусть они отправляют форму. просто предложение..!!