【发布时间】:2021-05-08 15:24:32
【问题描述】:
我正在尝试为用户帐户开发文件上传。每次提交时,我都会收到错误消息:此路由不支持 POST 方法。支持的方法:GET、HEAD。
但它应该支持Post方法吗?
你能帮忙吗?
<form action="{{url('image-upload')}}" enctype="multipart/form-data" method="post">
@csrf
<input type="file" name="file">
<input type="submit">
</form>
控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
class ImageUploadController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Application|Factory|View
*/
public function imageUpload()
{
return view('imageUpload');
}
/**
* Display a listing of the resource.
*
* @param Request $request
* @return RedirectResponse
*/
public function imageUploadPost(Request $request): RedirectResponse
{
$request->validate([
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$imageName = time().'.'.$request->image->extension();
$request->image->move(public_path('images'), $imageName);
return back()
->with('success','You have successfully upload image.')
->with('image',$imageName);
}
}
路由,web.php:
Route::get('image-upload', 'ImageUploadController@imageUpaload')->name('image.upload');
Route::post('image-upload', 'ImageUploadController@imageUploadPost')->name('image.upload.post');
【问题讨论】:
-
不用修改刀片代码,问题是缓存造成的,运行
php artisan route:clear即可解决此问题
标签: laravel