即使上传了文件,Laravel Input :: hasFile('image')也会返回false

jre*_*enk 11 php file-upload laravel laravel-4.2

我有一个用于图像上传的表单字段,我打开'files'=> true,如下所示:

{{ Form::label('image', 'Image') }}
{{ Form::file('image') }}
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我想检查文件是否已上传并对其执行操作:

if (Input::hasFile('image')){
        $in_path = 'img/';
        $in_extension = Input::file('image')->getClientOriginalExtension();
        $filename = Input::get('name').".".$in_extension;
        Input::file('image')->move($in_path, $filename);
        $user->image = $filename;
    }
Run Code Online (Sandbox Code Playgroud)

Input::hasFile总是返回假,我不知道为什么.

Input::file('image');
Run Code Online (Sandbox Code Playgroud)

结果是:

Symfony\Component\HttpFoundation\File\UploadedFile Object
(
[test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
[originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => test.JPG
[mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => application/octet-stream
[size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 1
[pathName:SplFileInfo:private] => 
[fileName:SplFileInfo:private] => 
)
Run Code Online (Sandbox Code Playgroud)

我已经为另一个用户测试了另一张图片,这很好用.我不明白为什么这对一些用户和其他一些用户不起作用.
是否有某种图片不被接受?

还有哪些其他来源可能是导致这个问题的原因?

Fel*_*llo 10

我遇到了同样的问题,我检查了我的代码,发现表单中没有 enctype="multipart/form-data" 标头,希望这个大疏忽对任何人都有帮助


jre*_*enk 9

我解决了什么问题.代码很好,但问题是一些图片只是很大.

编辑:
正如不要恐慌指出,编辑upload_max_filesize可以解决问题.

  • 作为简短的注释,这不是更好的注释。这是答案,而且完全有效。我遇到了同样的问题,并得出了相同的解决方案。增加`upload_max_filesize`可以解决这个问题。 (3认同)

Tim*_*Tim 7

你怎么打开你的表格?如果您希望表单接受您需要的文件,请将其打开,如下所示:

echo Form::open(array('url' => 'foo/bar', 'files' => true))
Run Code Online (Sandbox Code Playgroud)

在Laravel文档中打开表单