php 在null laravel上调用成员函数getClientOriginalName()

xdyibdwo  于 11个月前  发布在  PHP
关注(0)|答案(7)|浏览(142)

我不断得到这个错误,当我尝试上传一个PDF文档文件,有人有任何想法如何解决这个问题?
我试过寻找类似的问题,但仍然无法解决它(例如:Upload pdf file using Laravel 5
我试着做dd(),看看文件是否已经上传,它确实显示了文件名,但错误说Call to a member function getClientOriginalName() on null,所以现在我有点困惑,现在该怎么办。
这是我的密码,提前感谢你的帮助。
控制器:

class CreateController extends Controller
{
    public function create(){

    return view('create');
}
public function store(Request $request){

  $uniqueFileName = uniqid() . $request->get('upload_file')->getClientOriginalName() . '.' . $request->get('upload_file')->getClientOriginalExtension();

   $request->get('upload_file')->move(public_path('files') . $uniqueFileName);
//dd($request);
   return redirect()->back()->with('success', 'File uploaded successfully.');
}

字符串
create.blade.php

<form  enctype="multipart/form-data" class="form-horizontal" method="post" action="{{ url('/user')}}">

             {{  csrf_field()  }}
          <div class="form-group">
     <label for="upload_file" class="control-label col-sm-3">Upload File</label>
     <div class="col-sm-9">
          <input class="form-control" type="file" name="upload_file" id="upload_file">
     </div>
</div>

 <div class="form-group">
            <div class="col-md-6-offset-2">
              <input type="submit" class="btn btn-primary" value="Save">
            </div>
          </div>
</form>


路线:

Route::get('/user/create','CreateController@create');
Route::post('/user','CreateController@store');

xvw2m8pv

xvw2m8pv1#

这个enctype解决了函数调用时的null问题

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

字符串

4ioopgfo

4ioopgfo2#

您需要使用file()函数才能访问您上传的文件
$request->file('upload_file')

ru9i0ody

ru9i0ody3#

在标签表单enctype="multipart/form-data"中使用此代码

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

字符串

pvcm50d1

pvcm50d14#

尝试将文件放入var。

$file = $request->file('upload_file');

字符串
并从中获取扩展名和名称。

$uniqueFileName = uniqid() . $file->getClientOriginalName() . '.' . $file->getClientOriginalExtension();


希望有帮助。

qacovj5a

qacovj5a5#

解决这个问题的关键是你必须在if子句中写getClientOriginalName()函数,就像这样:

if($request->hasFile('logoImage')){
    $logoImage = $request->file('logoImage');
    $name = $logoImage->getClientOriginalName();
}

字符串

neekobn8

neekobn86#

if($request->has('sound_file')) {
            $image = $request->file('sound_file');
            $filename = $image->getClientOriginalName();
            request()->$image->move(public_path('images/users'), $filename);
            $sounds->image = $request->file('sound_file')->getClientOriginalName();
        }

字符串

0s7z1bwu

0s7z1bwu7#

if ($request->hasFile('file')) {
        $thumbnail = $request->file('file');
        $thumbnail = $thumbnail->getClientOriginalName();
      
    }

字符串

相关问题