簡體   English   中英

Laravel 5.1文件上傳isValid()在字符串上?

[英]Laravel 5.1 File Upload isValid() on string?

因此,我正在為我的項目中的文件上傳功能。

但是,當我嘗試它時,出現以下錯誤: 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');
        }
    }
}

刀片視圖下方第四行中的表格是輸入位置!

<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

此外,您的表單應包含正確的enctype以發送文件:

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

我認為您應該這樣使用。

$file = $request -> file('Filedata');
if (!$file -> isValid()) {
     echo Protocol::ajaxModel('JSEND_ERROR', 'not an valid file.');
     return;
}

在上添加屬性

enctype="multipart/form-data"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM