all. I am trying to learn Laravel and I am working on uploading an image. I get the following error:

"Call to a member function getClientOriginalName() on a non-object"

I am using these packages:

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

After using SO, I have verified the following are NOT contributing to the error above:

multipart/form-data on form Upload file data exists Thephp.ini max_filesize is way larger than the size of this small test file

My form is:

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

The code to generate the error is:

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

If I print out the object using:


...then I get:

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

All of which looks correct to me, so I am stumped.

If anyone has any ideas as to what to try next, I would appreciate the help.

Look at what's printed out. $image is an array of objects, not an object. Try:

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

本文开发(php)相关术语:php代码审计工具 php开发工程师 移动开发者大会 移动互联网开发 web开发工程师 软件开发流程 软件开发工程师

本文标题:Laravel &amp; ldquo&amp;semi; File Upload Error Invoke a member function get ...

技术大类 技术大类 | 开发(php) | 评论(0) | 阅读(34)