【问题标题】:Laravel, Dropzone "Trying to get property of non-object" File upload errorLaravel,Dropzone“试图获取非对象的属性”文件上传错误
【发布时间】:2013-12-22 21:29:43
【问题描述】:

我正在做一个需要上传文件的项目。我已经实现了 Dropzone.js 和 Laravel 框架。我确定我已经正确设置了所有内容,但是当我将文件拖放到 dropzone 并完成上传时,我会收到此错误

{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Call to a member function getRealPath() on a non-object","file":"C:\\wamp\\www\\local\\app\\controllers\\AssetsController.php","line":119}}

这是我的路线

Route::post('create/album','AssetsController@album');

这是我的控制器

$path = "assets";
$fileee = Input::file('file');
Image::make($fileee->getRealPath())->resize(500, null, true)->save($path);

当我使用 laravel 检查是否有文件时它返回 NULL 但是当我 var_dump() Input::file() 我得到一个文件相关数据的数组时,我已经搜索了网络并且似乎找不到任何东西。

提前致谢!

【问题讨论】:

  • 在非对象上调用成员函数 getRealPath() 是这里的关键。 $fileee 不是一个对象。当你说它是一个数组时,你自己回答了这个问题。
  • @Dave no laravel 文档没有错,我正在使用一个包来处理照片上传intervention.olivervogel.net/image/getting_started/laravel
  • @Dave getRealPath() 是我正在使用的那个图像类的函数
  • 您的错误是不言自明的,$fileee 不是对象。它没有方法。它是一个数组。弄清楚为什么它是一个数组而不是它声称应该是的 File 对象,然后你就设置好了。
  • @skrilled 我认为这与 dropzone.js 有关,因为当我以正常形式上传文件时,我没有收到此错误

标签: php file-upload laravel laravel-4 dropzone.js


【解决方案1】:

我终于想出了如何解决这个问题,这就是解决它的原因这是我更改的控制器

    $fileee = Input::file('file');
    Image::make($fileee[0]->getRealPath())->resize(540, null, true)->save('assets/example.png');

如果有人问这些图像处理方法是从哪里来的,那是使用 http://intervention.olivervogel.net/image/getting_started/laravel 的类 iam

希望这对未来的人有所帮助

【讨论】:

    【解决方案2】:

    我也搜索了答案,但得到了解决方案。

    Dropzone 有这个设置:

    uploadMultiple: true
    

    如果您将其设置为true,它会形成一个数组,这就是您需要使用$fileee[0] 的原因。如果您只允许发送一张图片,请将其更改为false,您将获得一个对象。

    【讨论】:

      猜你喜欢
      • 2016-06-13
      • 2018-06-02
      • 2017-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-27
      相关资源
      最近更新 更多