Input :: file()什么都不返回

时间:2015-04-22 18:09:59

标签: php laravel file-upload laravel-5

我只是尝试使用laravel框架工作上传图像,但我遇到了困难。我的问题是$file=Input::file();没有返回任何内容,在此之后我写$filename = $file->getClientOriginalName();然后我收到此错误:

  

在非对象

上调用成员函数getClientOriginalName()

这是我的Html代码

<form action="enter-input" method="get" enctype="multipart/form-data">
<input    name='image' style="width:194px;"type='file' class='form-control'>
<input type="submit"  class="btn btn-primary" value="Submit">
</form>

这是我的控制器代码

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

第一行不返回任何内容,第二行显示此错误Call to a member function getClientOriginalName() on a non-object。我是Laravel的新手。

4 个答案:

答案 0 :(得分:1)

方法可能会发布..

您可以为表单尝试刀片模板

{{Form::open(['url'=>'/enter-input','method'=>'POST','files'=>true])}}
//
{{Form::close()}}

您可以检查文件是否上传,

if (Input::hasFile('image')){
    //
}

如果您在laravel 5中,则需要在控制器顶部导入Input类。

<?php namespace App\Http\Controllers;

use Illuminate\Support\Facades\Input;

class YourController extends Controller {

谢谢。

答案 1 :(得分:1)

method="get"更改为method="post"

答案 2 :(得分:1)

在代码之上执行var_dump($ _ FILES),以确保文件由表单发送。请在这里粘贴你的var_dump。还要在表单中添加类型和上一个属性之间的空格。

答案 3 :(得分:0)

我遇到了同样的问题,经过一个小时的努力,我发现我上传的文件太大了。

通过增加upload_max_filesize文件中的php.ini来解决此问题。

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 10M