所以我在我的项目中做了一个文件上传的功能。

然而,当我尝试它时,我得到了这个错误:Call to a member function isValid() on string

我的上传功能代码:

public function upload(Request $request){ 
 
    $file = array('profielfoto' => $request->input('profielfoto')); 
 
    $rules = array('profielfoto' => 'required',); 
 
    $validator = Validator::make($file,$rules); 
    if($validator->fails()){ 
        return redirect('/profiel')->withInput()->withErrors($validator); 
    } 
    else{ 
        if($request->input('profielfoto')->isValid()){ //<- gives error 
            $destinationPath = 'assets/uploads'; 
            $extension = $request->input('profielfoto')->getClientOriginalExtension(); 
            $fileName = rand(1111,9999).'.'.$extension; 
 
            $request->input('profielfoto')->move($destinationPath,$fileName); 
 
 
 
            Session::flash('alert-success', 'Foto uploaden gelukt'); 
            return redirect('/profiel'); 
        } 
        else{ 
            Session::flash('alert-danger', 'Foto uploaden mislukt'); 
            return redirect('/profiel'); 
        } 
    } 
} 

从下往下第 4 行的 Blade View 中的表单是输入的位置!

<form method="POST" action="/profiel/upload" files="true"> 
                      {!! csrf_field() !!} 
                      <input type="hidden" name="_method" value="PUT"> 
                      <input type="hidden" class="form-control id2" id="id2"  name="id" value="{{$user->id}}"> 
                        <img src="assets/images/avatar.png" alt="gfxuser" class="img-circle center-block"> 
                        <div class="form-group center-block"> 
                        <label class="center-block text-center" for="fotoinput">Kies uw foto</label> 
              <input class="center-block" type="file"  name="profielfoto" id="profielfoto"> 
                      </div> 
                      <button type="submit" class="btn btn-success"><span class="fa fa-check" aria-hidden="true"></span> Verander foto</button> 
                      </form> 

请您参考如下方法:

您必须向文件请求 isValid(),而不是文件名。这就是你得到错误的原因。您可以通过 $request->file() 或通过 Input::file() 获取文件:

else{ 
    if( $request->file('profielfoto')->isValid()){ //<- gives error 

您的表单还应包含正确的加密类型以发送文件:

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


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!