Laravel Redirect:: withInput()

Как говорится в названии - я пытаюсь перенаправить на предыдущую страницу с входными данными, например:

return Redirect::back()->withInput();

Он работает как предназначен для обычного ввода, но не для файлов! Есть ли обходной путь для этого? Чтобы после перенаправления, предыдущий файл снова выбран.

Ответ 1

Это не сработает.

Когда вы перенаправляете что-то в Laravel, он сохраняет $_POST и $_GET в сеансе, чтобы вернуть данные в следующий запрос. Файлы входят в специальный PHP файл var, $_FILES, потому что они действительно не в памяти, они находятся на диске и только некоторые сведения о них в памяти.

Хранение этих файлов в сеансе может стоить слишком много ресурсов, представьте, что они хранят их в сеансе, который вы храните в базе данных... Да, Laravel или Symfony могли создать слой для борьбы с ним, выглядит легко на первый взгляд, но выглядит как они просто решили не делать.

Итак, IMO, если они вам понадобятся в следующем запросе, переместите их во временную область и Session:: put() информацию о них, поэтому вы можете просто выполнить Session:: get() в следующем запросе.

Ответ 2

Как упоминалось здесь, нет прямого способа сделать это. Важным решением может быть сохранение файла где-нибудь, после загрузки, а затем заполнение формы после перенаправления с дополнительным полем ввода, которое содержит информацию о вашем ранее загруженном файле. Таким образом, вы сможете решить на стороне сервера, чтобы взять старый (в случае, если новый файл не был загружен) или новый.

Ответ 3

Это может работать:

return Redirect::back()->with('file', Input::file('file_name');

Ответ 4

Если вы делаете с формой вроде

Form::text("name",null);

это будет работа, попробуйте:)

Ответ 5

Я бы выбрал подход java- script, просто проверьте входные данные в браузере с помощью java- script, если ввод хорош, пусть они отправят форму. просто предложение..!!