微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Laravel“文件上传错误调用非对象上的成员函数getClientOriginalName()”

所有.我正在努力学习Laravel,我正在努力上传图片.我收到以下错误

“在非对象上调用成员函数getClientOriginalName()”

我正在使用这些包:

"anahkiasen/former": "dev-master",
"intervention/image": "dev-master",
"intervention/imagecache": "2.*"

使用SO后,我已经验证以下内容不会导致上述错误

>表单上的multipart / form-data
>存在上传文件数据
> PHP.ini max_filesize大于此小测试文件的大小

我的表格是:

<form enctype="multipart/form-data" accept-charset="utf-8" class="form-horizontal" id="create_form" method="POST" action="/elements">

<div class="control-group"><label for="img[]" class="control-label">Upload Image</label><div class="controls"><input multiple="true" class="myclass" accept="image/gif|image/jpeg|image/png" id="img[]" type="file" name="img[]"></div></div>

<div class="form-actions"><input class="btn-large btn-primary btn" type="submit" value="Submit"> <input class="btn-large btn-inverse btn" type="reset" value="Reset"></div>

<input type="hidden" name="_token" value="B0AJ0Y5LMrMng6CsePeZfNSvRQ0KexowOGTK99Gm">
</form>

生成错误代码是:

$image = Input::file('img');
$filename = $image->getClientOriginalName();
print_($filename);

如果我使用以下方法打印出对象:

的print_r($图像);

…然后我得到:

Array
(
    [0] => Symfony\Component\HttpFoundation\File\UploadedFile Object
        (
            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => storageunit.jpg
            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg
            [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 8734
            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
            [pathName:SplFileInfo:private] => /tmp/PHP9AU1OE
            [fileName:SplFileInfo:private] => PHP9AU1OE
        )

)

所有这些对我来说都是正确的,所以我很难过.

如果有人对下一步尝试有任何想法,我将不胜感激.

解决方法:

看看打印出来的是什么. $image是一个对象数组,而不是一个对象.尝试:

$filename = $image[0]->getClientOriginalName();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐