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, если ввод хорош, пусть они отправят форму. просто предложение..!!