我正在尝试在Laravel 5中制作图像上传器,但我很难得到这个错误:
RouteCollection.php第219行中的MethodNotAllowedHttpException
什么可能导致这个问题?
形式:
<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' => 'HomeController@uploadImage'
]);
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 :(得分:1)
更改网址::路线
<form name="upload_image" method="post" action="{{route('uploadImage')}}">
答案 1 :(得分: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','HomeController@uploadImage');
答案 2 :(得分:0)
使用Laravel 5,您必须使用{{ route('uploadImage') }}
而不是{{URL::route('uploadImage')}}
,因为Laravel不再使用网址提供程序。
您忘记在表单中添加enctype="multipart/form-data"
了吗?