【发布时间】:2014-07-15 14:55:30
【问题描述】:
我使用来自https://github.com/Anahkiasen/former 的前一个生成器工具生成了一个多重上传表单。
{{ Former::files('file')->accept('image')->required(); }}
结果
<input multiple="true" accept="image/*" required="true" id="file[]" type="file" name="file[]">
在我提交表单后,我发现Input::hasFile('file') 总是返回 false 而Input:has('file') returns true。
到目前为止我所尝试的:
Log::info(输入::file('file'));
foreach(Input::file('file') as $file) <-- Invalid argument supplied for foreach()
Log::info("test");
if(Input::has('file'))
{
if(is_array(Input::get('file')))
foreach ( Input::get('file') as $file)
{
Log::info($file); <-- returns the filename
$validator = Validator::make( array('file' => $file), array('file' => 'required|image'));
if($validator->fails()) {
...
}
}
}
当然,验证器总是失败,因为 Input::get('file') 没有返回文件对象。如何修改我的代码以捕获提交的文件?
【问题讨论】:
-
你是用
'files' => true打开表格吗? -
我从未见过这个选项,但我试了一下,不幸的是它并没有改变结果
-
该选项设置正确的加密类型 (
enctype='multipart/form-data'),如果您尝试上传文件,这是必要的,有关此here 的更多信息。 -
这篇文章可能会有所帮助,但我不确定它是否能回答您的问题:forumsarchive.laravel.io/viewtopic.php?id=2839
标签: forms validation file-io laravel