2017-04-04 5 views
0

이미지를 업로드하는 대신 작성/편집 페이지를 새로 고치기 때문에 이미지 업로드에 문제가있는 간단한 CMS로 작업하고 있습니다. 이미지 부분을 주석 처리 할 때 작동합니다. Laravel Image Upload Not Working

내 코드입니다 :

public function create() 
{ 
    $packages = Package::all(); 

    return view('packages.create')->withPackages($packages); 
} 

/** 
* Store a newly created resource in storage. 
* 
* @param \Illuminate\Http\Request $request 
* @return \Illuminate\Http\Response 
*/ 
public function store(Request $request) 
{ 
    $this->validate($request, array(

     'title'  => 'required|max:30', 
     'content' => 'required|max:255', 
     'price'  => 'required|max:15', 
     'icon'  => 'required|image' 

    )); 

    $package = new Package; 

    $package->title = $request->title; 
    $package->content = $request->content; 
    $package->price = $request->price; 

    if ($request->hasFile('icon')){ 
     $image = $request->file('icon'); 
     $filename = time() . '.' . $image->getClientOriginalExtension(); 
     $location = public_path('img/' . $filename); 
     Image::make($image)->resize(300,300)->save($location); 

     $package->image = $filename; 
    } 

    $package->save(); 

    return redirect()->route('packages.index'); 
} 

/** 
* 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) 
{ 
    $package = Package::find($id); 
    return view('packages.edit')->withPackage($package); 
} 

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

     'title'  => 'required|max:30', 
     'content' => 'required|max:255', 
     'price'  => 'required|max:15', 
     'icon'  => 'required|image' 

    )); 

    $package = Package::find($id); 

    $package->title = $request->title; 
    $package->content = $request->content; 
    $package->price = $request->price; 

    if ($request->hasFile('icon')){ 
    //Add new photo 
     $image = $request->file('icon'); 
     $filename = time() . '.' . $image->getClientOriginalExtension(); 
     $location = public_path('img/' . $filename); 
     Image::make($image)->resize(300,300)->save($location); 

     $oldFilename = $package->image; 
    //Update DB 
     $package->image = $filename; 

    //Delete the old photo 
     Storage::delete($oldFilename); 
    } 

    $package->save(); 

    //Set flash data with success message 
    Session::flash('success', 'Pakkeløsningen blev opdateret!'); 

    // Redirect with flash data to posts.show 
    return redirect()->route('packages.index'); 
} 

그리고 이것은 내가 뭔가

을 누락 곳입니다 경우, PackageController

 {!! Form::open(['route' => 'packages.store']) !!} 

      {{ Form::label('title', 'Titel:') }} 
      {{ Form::text('title', null, array('class'=>'form-control', 'required' => '', 'maxlength' => '255')) }} 

      {{ Form::label('content', 'Indhold:') }} 
      {{ Form::text('content', null, array('class'=>'form-control', 'required' => '', 'maxlength' => '255')) }} 

      {{ Form::label('price', 'Pris:') }} 
      {{ Form::text('price', null, array('class'=>'form-control')) }} 

      {{ Form::label('icon', 'Vælg ikon') }} 
      {{ Form::file('icon') }} 

      {{ Form::submit('Lav pakkeløsning!!', array('class' => 'btn btn-success btn-lg btn-block','style' => 'margin-top:20px;')) }} 

     {!! Form::close() !!} 

Aaaand 내 경로에 대한 내 create.blade.php입니다

Route::resource('packages', 'PackageController'); 

내 제공 업체 및 별칭에 중재 이미지가 있는데, 그 중 한 곳에 이름 공간이 있습니다. 컨트롤러는 이렇게 :

namespace App\Http\Controllers; 
use App\Package; 
use Session; 
use Image; 
use Storage; 

미리 감사드립니다! 그리고 나는 바보 같은 초보자 질문으로 누군가를 괴롭히지 않기를 바랍니다 :)

답변

0

당신은 enctype 속성이 없습니다. 다음

{!! Form::open(['route' => 'packages.store', 'enctype' => 'multipart/form-data']) !!} 
+0

같은

편집 create.blade.php 폼을 엽니 다 너무 감사합니다! :디 –