工作中图片上传遇到的一个问题
同事需要调用我开发的一个图片上传接口,我把接口文档以及调用示例全部给了他,结果他调不成功,向我请教。
一步步调试,最终结果定位到他图片上传到本地时就失败了。打印出$_FILES数组,error提示给出的是7
查看手册,是写入磁盘失败。首先想法是上传临时文件夹失败。
去php.ini中查看临时文件夹,发现没有设置,其实默认就是/tmp目录了,修改一下临时文件夹,设置成/tmp,重启php-fpm,打开phpinfo,看到临时文件夹为/tmp
再上传,还是报同样的错误。为啥写入失败呢?难道满了?
果不其然,df命令一看,/tmp 100%占用了。
再去php.ini中配置上传临时文件夹,改成/temp,重启php-fpm,上传成功。
发生上传错误时,先输出上传信息,查看错误码,参考手册,看看是什么原因。如上,发生7错误,写入不了磁盘,找到临时文件夹,看看权限,以及是否满了。
解决了问题,再去看服务器上的/tmp目录,为什么满了。结果发现/tmp目录下面全是命名规则的垃圾文件,非常多,不知道谁干的。既然放到了/tmp下,那就删掉吧。