好的,这就是场景:
向用户显示包含文件输入的表单.用户提交表单.表单因某种原因未通过验证/验证.用户出现的表单突出显示错误.文件输入现在为空白.
题:
是否可以使用用户最初选择的文件的路径重新填充文件输入.PHP解决方案是理想的,但我也对JavaScript解决方案持开放态度.
我有一个表单,其中包含几个处理文件的输入.javascript验证非常适合检查以确保一切正常,但有些东西需要PHP检查(如文件的mime类型),有时它会被拒绝.
问题是,当我将用户发送回表单时,我可以重新填充他们最初输入的所有数据,除了具有文件类型的输入.Firefox不提供绝对文件路径,因此我不能只在文件路径中复制输入.
我该怎么做才能重新填充input type = file表单元素?
我正在使用Laravel 5.1中的表单发布一些文本并上传文件.它看起来像这样(简化版):
{!! Form::open(array('url' => 'foo/bar')) !!}
{!! Form::text('image_name') !!}
{!! Form::file('image') !!}
{!! Form::submit('Submit!') !!}
{!! Form::close() !!}
Run Code Online (Sandbox Code Playgroud)
文本字段是必需的,所以我$validator在我的控制器中添加了一个.如果验证失败,则会将用户重定向回表单.我使用该withInput()方法重新填充表单,以便用户不必再次填写它:
if ($validator->fails()) {
return redirect()->back()->withInput();
}
Run Code Online (Sandbox Code Playgroud)
这将为文本字段,下拉列表等返回旧输入.但是,如果用户已上载文件,则在验证失败时必须再次选择文件选择.Laravel有什么方法可以记住文件选择作为旧输入吗?
谢谢!