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

2022-08-31 00:27:05

我有一个用于图像上传的表单字段,我用“文件”=> true打开它,如下所示:

{{ Form::label('image', 'Image') }}
{{ Form::file('image') }}

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

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;
    }

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

Input::file('image');

结果:

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] => 
)

我已经为另一个用户测试了另一张图片,这工作正常。我不明白为什么这对某些用户有效,而对其他一些用户不起作用。
是否有某种不被接受的图片?

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


答案 1

我解决了问题所在。密码很好,但问题是有些图片只是大。

编辑:
正如Don't Panic指出的那样,编辑可以解决问题。upload_max_filesize


答案 2

我遇到了同样的问题,我检查了我的代码,注意到我在表单中没有enctype=“multipart/form-data”标头,希望这个大的疏忽可以帮助任何人。


推荐