【问题标题】:laravel 5.2 | upload file - Call to a member function getClientOriginalName() on null拉拉维尔 5.2 |上传文件 - 在 null 上调用成员函数 getClientOriginalName()
【发布时间】:2016-12-19 06:59:45
【问题描述】:

我尝试上传个人资料图片,但出现错误“调用成员函数 getClientOriginalName() on null”

这是我的方法:

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

创建:

 {!! 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() !!}

已经将方法编辑为:

 $photo = $request->file('fotodosen')->getClientOriginalName($photo);

仍然出现该错误。我错过了什么?

更新:

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

【问题讨论】:

  • $request-&gt;file('image')-&gt;getClientOriginalName();

标签: php laravel-5.2


【解决方案1】:

您的文件名为image 尝试使用image 而不是fotodosen

$photo = $request->file('image')->getClientOriginalName();

完整代码

$data = $request->input('image');
$photo = $request->file('image')->getClientOriginalName();
$destination = base_path() . '/public/uploads';
$request->file('image')->move($destination, $photo);

您可以检查文件,例如,

if ($request->hasFile('image')) {
    // your code here
}

来自Http Requests和一篇文章file upload in laravel 5

【讨论】:

  • 仍然有错误调用成员函数getClientOriginalName() on null
  • 使用var_dump($request-&gt;file('image'))进行调试。
  • 我成功将文件上传到服务器。但它创建了另一行空数据,除了 'fotodosen' 列。请检查我的更新代码。
【解决方案2】:

我遇到了同样的问题,所以我使用 html 表单属性 enctype="multipart/form-data" 解决了它

例子

<form name="le_form" action="/ft" method="POST" enctype="multipart/form-data">

更多信息见

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      如果您要上传文件或表单中有文件字段,请执行此操作

       {{  Form::open(array('url' => 'dashboard/new_job', 'enctype'=>'multipart/form-data')) }}
      

      <form  action="/ft" method="POST" enctype="multipart/form-data">
      

      【讨论】:

        猜你喜欢
        • 2018-09-29
        • 2017-07-02
        • 2018-04-03
        • 2019-02-15
        • 2016-09-17
        • 2020-01-10
        • 2020-04-15
        • 2021-11-15
        • 1970-01-01
        相关资源
        最近更新 更多