Php Laravel重定向::withInput()

Php Laravel重定向::withInput(),php,file,redirect,laravel,Php,File,Redirect,Laravel,正如标题所说-我正试图重定向回上一页,输入数据如下: return Redirect::back()->withInput(); 它适用于常规输入,但不适用于文件!有解决办法吗?因此,在重定向之后,将再次选择上一个文件。如前所述,没有直接的方法可以做到这一点。一个有价值的解决方案可能是,在上传时将文件保存在某个地方,然后在重定向后使用一个额外的输入字段填充表单,该字段包含有关先前上传文件的信息。这样,您就可以在服务器端决定是使用旧文件(以防没有上载新文件)还是使用新文件。这可能会起作用:

正如标题所说-我正试图重定向回上一页,输入数据如下:

return Redirect::back()->withInput();
它适用于常规输入,但不适用于文件!有解决办法吗?因此,在重定向之后,将再次选择上一个文件。

如前所述,没有直接的方法可以做到这一点。一个有价值的解决方案可能是,在上传时将文件保存在某个地方,然后在重定向后使用一个额外的输入字段填充表单,该字段包含有关先前上传文件的信息。这样,您就可以在服务器端决定是使用旧文件(以防没有上载新文件)还是使用新文件。

这可能会起作用:

return Redirect::back()->with('file', Input::file('file_name');
这行不通

当您在Laravel中重定向某些内容时,它会在会话中存储$\u POST和$\u GET,以便在下一个请求中返回数据。文件位于一个特殊的PHP全局变量$\u文件中,因为它们实际上不在内存中,而是在磁盘中,并且只是内存中关于它们的一些信息

在会话中存储这些文件可能会耗费太多资源,想象一下将它们存储在数据库中存储的会话中。。。是的,Laravel或Symfony可以创建一个图层来处理它,乍一看很容易,但看起来他们只是决定不这样做


因此,在我看来,如果您在下一个请求中需要它们,请将它们移动到一个临时区域,然后Session::put()将有关它们的信息,这样您就可以在下一个请求中使用Session::get()获取它们。

我会选择java脚本方法,只要使用java脚本在浏览器中验证输入数据,如果输入良好,就让它们提交表单。只是一个建议

如果你用这样的形式

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

这是可行的,试试看:)

我在任何地方都找不到答案,但我认为这是不可能的。希望有人能回答这个问题。很高兴看到我不是唯一一个有这个问题的人:)这就是我在下面写的。更像是一个普通的PHP问题,而不是特定于Laravel的问题。JavaScript不是本项目的选项:(