首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel“对非对象上成员函数getClientOriginalName()的文件上载错误调用”

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

Stack Overflow用户
提问于 2014-12-12 21:53:41
回答 3查看 19.9K关注 0票数 4

全。我正在努力学习Laravel,我正在努力上传一张图片。我得到以下错误:

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

我正在使用这些软件包:

代码语言:javascript
运行
复制
"anahkiasen/former": "dev-master",
"intervention/image": "dev-master",
"intervention/imagecache": "2.*"

在使用SO之后,我已经验证了以下内容并没有造成上述错误:

  • 多部分/表格-表格上的数据
  • 上传文件数据
  • PHP.ini max_filesize比这个小测试文件的大小大得多。

我的表格是:

代码语言:javascript
运行
复制
<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>

生成错误的代码是:

代码语言:javascript
运行
复制
$image = Input::file('img');
$filename = $image->getClientOriginalName();
print_($filename);

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

print_r($image);

我明白:...then:

代码语言:javascript
运行
复制
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
        )

)

所有这些在我看来都是正确的,所以我很困惑。

如果有人对下一步的尝试有任何想法的话,我将非常感谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-12 21:56:00

看看印出来的东西。$image是一个对象数组,而不是一个对象。尝试:

代码语言:javascript
运行
复制
$filename = $image[0]->getClientOriginalName();
票数 8
EN

Stack Overflow用户

发布于 2014-12-12 21:59:58

哈!

“文件”而不是“文件”

代码语言:javascript
运行
复制
{{
  Former::file('img')
  ->label('Upload Image')
  ->class('myclass')
  ->accept('gif', 'jpg', 'png');
}}
票数 1
EN

Stack Overflow用户

发布于 2017-04-21 06:32:47

对我来说,唯一的问题是文件上传实体所要求的类文件丢失了。

我加了这段代码就成功了,

使用照明\Http\UploadedFile;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27452716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档