为了账号安全,请及时绑定邮箱和手机立即绑定

laravel5.6 api 图片上传报错

laravel5.6 api 图片上传报错

PHP
qq_花开花谢_0 2019-03-08 04:39:19
问题描述 通过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文件没问题,但是上传任意图片文件都会报这个错。
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

找到问题所在了,是因为nginx的权限问题,把nginx的权限改成www的就好了

查看完整回答
反对 回复 2019-03-18
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

可能是 enctype="multipart/form-data" 导致的 看报错是请求不合法,一般来说是 HTTP 请求上的问题

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 471 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信