2016-03-22 11 views
6

Ich versuche, ein Profilbild Upload in Laravel 5.1 hinzuzufügen. Ich benutzte das Intervention/Image Paket, aber wenn ich versuche, das Bild, das ich diesen Fehler zu laden:Intervention/Image Upload Fehler {{Bildquelle nicht lesbar}}

NotReadableException in AbstractDecoder.php line 302: Image source not readable

Das ist mein Photocontroller:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use Image; 
use Input; 
use App\Http\Requests; 
use App\Http\Controllers\Controller; 

class PhotoController extends Controller 
{ 
    /** 
    * Display a listing of the resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index() {} 

    /** 
    * Show the form for creating a new resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function create() {} 

    /** 
    * Store a newly created resource in storage. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return \Illuminate\Http\Response 
    */ 
    public function store(Request $request) 
    { 
     $img = Image::make($request->file('photo')); 
     $img->save('image.png'); 
    } 

    /** 
    * Display the specified resource. 
    * 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function show($id) {} 

    /** 
    * Show the form for editing the specified resource. 
    * 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function edit($id) {} 

    /** 
    * Update the specified resource in storage. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function update(Request $request, $id) {} 

    /** 
    * Remove the specified resource from storage. 
    * 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function destroy($id) {} 
} 

Das ist mein HTML-Formular:

<header> 
    <div class="student_profile_sub_header w100"> 
     <div class="container ccenter"> 
      <div class="student_profile_name"> 
       <h4>{{$student->name}} {{$student->surname}}</h4> 
      </div> 
      <div class="student_profile_image"> 
       <img src="{{asset('assets/profile_image.png')}}"> 
      </div> 

      <form method="POST" action="../student/profile/imageupload"> 
       {!! csrf_field() !!} 
       <input type="file" name="photo"> 
       <input type="submit" value="Upload Image" name="submit"> 
       @foreach($errors->all() as $error) 
        <li>{{ $error }}</li> 
       @endforeach 
      </form> 
     </div> 
    </div> 
</header> 
+0

geben Sie Ihren Zieldateipfad innerhalb speichern Methode –

Antwort

8

Fügen Sie den folgenden Parameter in der Form tag:

enctype="multipart/form-data" 

Und für diese in make ändern:

$img = Image::make($request->file('photo')->getRealPath()); 
+0

Vielen Dank Thiago Alves. – arispapapro

1

Versuchen Laravel kollektive verwenden, stellen Sie sicher, dass Sie überprüft Dateien auf true, wenn Sie kollektive Laravel verwenden

{{ Form::open(['route'=>'your-route', 'class'=>'form',**'files'=>true**]) }} 
{{ Form::close()}}` 

, dann, wenn Sie Ihre Datei in Speicherfunktion anfordert fügen Sie den getRealPath() wie folgt Image::make(Input::file('artist_pic')->getRealPath())->resize(120,75);