首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel5.2上传文件-调用成员函数getClientOriginalName()为null

Laravel5.2上传文件-调用成员函数getClientOriginalName()为null
EN

Stack Overflow用户
提问于 2016-08-12 09:50:06
回答 4查看 57.4K关注 0票数 3

我试图上传配置文件图片,但遇到了错误“调用成员函数getClientOriginalName() on null”

这是我的方法:

代码语言:javascript
复制
  $data = $request->input('fotodosen');
    $photo = $request->file('fotodosen')->getClientOriginalName();
    $destination = base_path() . '/public/uploads';
    $request->file('fotodosen')->move($destination, $photo);
    $data['fotodosen'] = $photo;
    Dosen::create($data);

创建:

代码语言:javascript
复制
 {!! Form::open(array('fotodosen'=>'create', 'method'=>'POST', 'files'=>true, 'url'=>'uploads')) !!}
             {!! Form::file('image') !!}
                   <div class="form-group">
                        <div class="col-md-6 col-md-offset-4">
                            <button type="submit" class="btn btn-primary">
                                <i class="fa fa-btn fa-user"></i> Register
                            </button>
                             {!! Form::close() !!}

已编辑方法以:

代码语言:javascript
复制
 $photo = $request->file('fotodosen')->getClientOriginalName($photo);

仍然有那个错误。我遗漏了什么?

更新:

代码语言:javascript
复制
public function store(CreateDosenRequest $request)

{



    $user = User::create([
        'name' => $request->input('name'),
        'username' => $request->input('username'),
        'email' => $request->input('email'),
        'password' => $request->input('password'),
        'admin' => $request->input('admin'),
     ]);

      $dosen = Dosen::create([
        'iddosen' => $request->input('iddosen'),
        'nipy' => $request->input('nipy'),
        'namadosen' => $user->name,
        'user_id' => $user->id,
        'alamatdosen' => $request->input('alamatdosen'),
        'notelpdosen' => $request->input('notelpdosen'),
        'tempatlahirdosen' => $request->input('tempatlahirdosen'),
        'tanggallahirdosen' => $request->input('tanggallahirdosen'),
        'agamadosen' => $request->input('agamadosen'),

    ]);
        if ($request->hasFile('image')) {
            $data = $request->input('image');
            $photo = $request->file('image')->getClientOriginalName();
            $destination = public_path() . '/uploads/';
            $request->file('image')->move($destination, $photo);
            $data['fotodosen'] = $photo;
            Dosen::create($data);
 }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-08-12 09:55:04

您有文件名,因为image尝试使用image而不是fotodosen

代码语言:javascript
复制
$photo = $request->file('image')->getClientOriginalName();

全码

代码语言:javascript
复制
$data = $request->input('image');
$photo = $request->file('image')->getClientOriginalName();
$destination = base_path() . '/public/uploads';
$request->file('image')->move($destination, $photo);

你可以检查一下文件,

代码语言:javascript
复制
if ($request->hasFile('image')) {
    // your code here
}

来自Http请求和一篇文章文件上传到laravel 5

票数 9
EN

Stack Overflow用户

发布于 2017-11-13 00:02:38

我也有同样的问题,所以我用html表单属性enctype="multipart/form-data"解决了这个问题。

示例

代码语言:javascript
复制
<form name="le_form" action="/ft" method="POST" enctype="multipart/form-data">

有关更多信息,请参阅

票数 4
EN

Stack Overflow用户

发布于 2018-10-22 09:05:25

对我来说,我发现我没有在表单中包含enctype'=>'multipart/form-data。当我这样做的时候,它最终解决了这个问题。

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

https://stackoverflow.com/questions/38914976

复制
相关文章

相似问题

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