通过api接口的形式上传图片到服务器,报错:Symfony Component HttpKernel Exception MethodNotAllowedHttpException
详细报错信息:
我使用的是laravel5.6版本,上传.txt文件可以成功,但是上传图片文件就会出现这个错误,即使图片大小只有十几KB。
// 请把代码文本粘贴到下方(请勿用图片代替代码)
路由代码:routes/api.php中
Route:: post('uploadImg', 'UploadImgController@uploadImg');
Route:: get('upload', 'FileController@upload');
控制器代码:
public function uploadImg(Request $request)
{
if (!$request->hasFile('pic') || !$request->file('pic')->isValid()) {
return response()->json(error('1'));
}
// 格式校验
$extension = $request->file('pic')->extension();
if (!in_array($extension, ['png', 'jpg', 'jpeg'])) {
return response()->json(error('2'));
}
// 大小校验
$size = $request->file->getClientSize();
if ($size > 2048 * 1000) {
return response()->json(error('3'));
}
// 上传文件, 并获取上传后的访问地址
$path = $request->file('pic')->store('images','local');
return response()->json(success(['src' => $path]));
}
public function upload(){
return view('index');
}
模板代码:
<!doctype html>
<html>
<head>
<title>图片上传测试</title>
<meta charset="utf-8">
</head>
<body>
<div class="container">
<div class="panel-heading">上传文件</div>
<form name="uploadImg" method="post" action="{{url('/api/uploadImg')}}" enctype="multipart/form-data" >
<label for="file">选择文件</label>
<input name="pic" type="file" >
<button type="submit" class="btn btn-primary">确定</button>
</form>
</div>
</body>
</html>
上传txt文件没问题,但是上传任意图片文件都会报这个错。
狐的传说
一只名叫tom的猫