2017-02-27 30 views
0

我正在開發一個項目在laravel 5.3,我必須創建一個字段的形式來更改網站的標識我的形式看起來像這樣。調用成員函數getClientOriginalExtension()上的空錯誤,同時上傳圖片在laravel 5.3

enter image description here

我並不需要保存在數據庫路徑。我只需要在帶有名稱標誌的\ public \ images \中上傳文件,並且只允許png文件。所以它會是\public\images\logo.png

以下是表格代碼。

<div class="col-md-8 col-md-offset-2"> 

    @if (count($errors) > 0) 
    <div class="alert alert-danger"> 
     <strong>Whoops!</strong> There were some problems with your input.<br><br> 
     <ul> 
      @foreach ($errors->all() as $error) 
      <li>{{ $error }}</li> 
      @endforeach 
     </ul> 
    </div> 
    @endif 

    @if ($message = Session::get('success')) 
    <div class="alert alert-success alert-block"> 
     <button type="button" class="close" data-dismiss="alert">×</button> 
     <strong>{{ $message }}</strong> 
    </div> 
    <img src="/images/{{ Session::get('path') }}"> 
    @endif 


    <div class="box box-info"> 
     <div class="box-header with-border text-center"> 
      <h3 class="box-title">Basic Info</h3> 
     </div> 
     <!-- /.box-header --> 
     <!-- form start --> 
     <form class="form-horizontal" action="{{ url('/') }}/admin/change-site-logo" enctype="multipart/form-data" method="POST"> 
      <div class="box-body"> 
       {{ csrf_field() }} 
       <div class="form-group"> 
        <label for="logo" class="col-sm-3 control-label">Logo</label> 

        <div class="col-sm-9"> 
         <input type="file" class="form-control" id="logo" name="logo" placeholder="Logo Image"> 
        </div> 

       </div> 

       <div class="form-group"> 
        <label for="logo" class="col-sm-3 control-label"></label> 

        <div class="col-sm-9"> 
         <img style="width: 200px; height: 50px;" src="https://www.google.com.pk/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"> 
        </div> 

       </div> 


      </div> 
      <!-- /.box-body --> 
      <div class="box-footer"> 
       <button type="submit" class="btn btn-info pull-right">Save</button> 
      </div> 
      <!-- /.box-footer --> 
     </form> 
    </div> 
    <br /><br /> 

</div> 

這是路線Route::post('/admin/change-site-logo', '[email protected]_change');

和控制器如下

class adminController extends Controller 
{ 

    public function logo_change(Request $request) { 

     $this->validate($request, [ 
      'logo' = > 'required|image|mimes:png|max:2048', 
     ]); 

     $imageName = 'logo.'.$request->image->getClientOriginalExtension(); 
     $request->image->move(public_path('images'), $imageName); 

     return back() 
      ->with('success', 'Image Uploaded Successfully.') 
      ->with('in path', $imageName); 
    } 
} 

我寫第一次這樣的代碼,以便不知道解決什麼。我只知道,錯誤的是Call to a member function getClientOriginalExtension() on null

+0

我猜想由於某種原因沒有上傳圖片。所以'$ request-> image'爲空 – emaillenin

+0

好吧,但我在這裏得到解決方案。 –

+0

看看爲什麼圖像沒有上傳的日誌 – emaillenin

回答

0

嘗試改變

$request->image 

$request->logo 

您創建$imageName行。

相關問題