layui.upload上传图片报错“请求上传接口出现异常”且接口报404问题

在调试layui.upload上传图片时候报错“请求上传接口出现异常”:

layui.upload上传图片报错“请求上传接口出现异常”_layui.upload问题返回404

且接口返回是404,返回接口丢失了。

复盘处理流程:

花了一些事件,做了如下的一些问题筛选处理,首先要确认接口是否是通的,找一个更小的图片试下,1kb左右,如果接口不通,那么调接口就行了。我这里发现5kb以下的可以上传,150k以上就会出问题报错。那么说明接口是没有问题的!我这里用postman单独调试。

layui.upload上传图片报错“请求上传接口出现异常”_layui.upload问题返回404_02

猜测有可能是php.ini、nginx上传限制问题,查看了php.ini:

upload_max_filesize = 50m ;

设置上传大小上限没有问题,范围内;查看nginx.conf:

client_max_body_size 50m;

最大限制也没有问题,也设置的足够大。

那么说明是nginx遇到问题中断了,所以返回了404,所以查看刚才上传文件反问接口后产生的错误日志(nginx日志):

layui.upload上传图片报错“请求上传接口出现异常”_layui.upload问题返回404_03找到问题结症所在,open() "/usr/local/var/run/nginx/client_body_temp/0000000001" failed (13: Permission denied),访问权限问题。

分析产生原因:

客户端POST一个比较大的文件,长度超过了nginx缓冲区的大小,需要把这个文件的部分或者全部内容暂存到client_body_temp目录下的临时文件。所以提交5Kb的数据没有问题,超过了一定的大小就需要暂存到缓存区。所以这里需要注意这样的小坑!

处理方式:

解决这个/usr/local/var/run/nginx/client_body_temp目录读写权限就行了,如下(mac下控制台):

先查看权限

ls -l

layui.upload上传图片报错“请求上传接口出现异常”_报错“请求上传接口出现异常”_04

提升用户

layui.upload上传图片报错“请求上传接口出现异常”_layui.upload问题返回404_05

增加读写权限

chmod -R 755  client_body_temp/

在操作接口或上传图片,没有问题。