2016-05-04 6 views
1

Я пытаюсь сделать загрузчик изображений в Laravel 5, но я стриллы получаю эту ошибку:Laravel 5 MethodNotAllowedHttpException в RouteCollection.php линии 219

MethodNotAllowedHttpException in RouteCollection.php line 219

Что может вызвать эту проблему?

Форма:

<form name="upload_image" method="post" action="{{URL::route('uploadImage')}}"> 
<input type="file" accept="image/*"> 
<input type="hidden" name="_token" value="{{ csrf_token() }}"> 
<input type="submit" name="submit"> 

routes.php

Route::post('uploadImage', [ 
    'as' => 'uploadImage', 
    'uses' => '[email protected]' 
]); 

HomeController.php

public function uploadImage() { 
    if (Auth::check()) { 
     if (Auth::user()->admin == 1) { 
      $image = Input::get('image'); 
      $filename = time() . '.' . $image->getClientOriginalExtension(); 
      $path = public_path('articleImages/' . $filename); 
      Image::make($image->getRealPath())->resize(600, 400)->save($path); 
      return view('admin.uploadImage')->with('path', $path); 
     } 
     return view('/'); 
    } 
    return view('/'); 
} 

Спасибо.

+0

Sidenote, в Laravel 5 просто используйте 'route ('uploadImage')' not 'URL :: route ('uploadImage')'. Поскольку фабрика 'URL' устарела. – Ohgodwhy

+0

Где вы слышали, что 'UrlGenerator' устарел? 'URL' - это просто фасад для этого, не думайте, что он будет устаревшим ... – PeterPan666

+0

Я не являюсь причиной этой ошибки, я изменил ее, но все равно получаю то же самое. – xtrontross

ответ

1

Изменить URL :: маршрута

<form name="upload_image" method="post" action="{{route('uploadImage')}}"> 
+0

Я не знаю, что вызывает эту ошибку, я изменил ее, но все равно получаю то же самое. – xtrontross

+0

попробуйте изменить текст, чтобы добавить изображение вместо uploadImage –

+0

Еще ничего :( – xtrontross

0

первую очередь вам нужны имена для элементов ввода как это:

<form name="upload_image" method="post" action="{{URL::route('uploadImage')}}"> 
<input name="image" type="file" accept="image/*"> 
<input type="hidden" name="_token" value="{{ csrf_token() }}"> 
<input type="submit" name="submit"> 

второй вещь, которую вы можете написать маршруты, как это:

Route::post('uploadImage','[email protected]'); 
0
  1. С Laravel 5 вы должны использовать {{ route('uploadImage') }} вместо {{URL::route('uploadImage')}}, потому что Laravel больше не использует URL-адрес поставщика.

  2. Вы забыли положить enctype="multipart/form-data" в свою форму?