我只是尝试使用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的新手。
答案 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