ueditor上传图片至第三方图床的错误排查笔记
近日网站图床不太稳定,图片时常不显示,所以准备换一个图床来进行网站图片的存储;
为了使后台文本编辑器(ueditor)上传图片时完美对接第三方图片存储平台,第三方图片存储平台选择了贴图库,因为其官网提供有现成的ueditor插件,对接起来相对方便。
但是在按照他们官网的说法配置后,并无效果,图片能上传到服务器,但是无法存储至贴图库相册。刚开始以为是插件的问题,咨询技术客服后技术说没有问题,但是我真边就是不成功。
屡次寻求帮助无果,于是想应该是自己这边的问题,接下来就开始测试,从点击上传到最后执行上传,中间的程序,一步步打印返回结果,最后,锁定到了curl
执行上传的步骤,如下代码所示,该函数总返回false,通过网络上提供的打印详细错误信息的方法,在$output =
curl_exec($ch);之后添加如语句:var_dump(curl_error($ch));exit;打印出了详细的错误信息:string(38)
"Couldn't resolve host 'up.tietuku.com'"
,不能解析域名,一瞬间:恍然大悟,悲喜交加:因为服务器设置的防火墙规则里设置了禁止服务器访问别的网站,所以才出现了上面的错误。前前后后断断续续做了4天,没想到问题出在了这里,小问题,但是却很要命。故作此文,以自醒。。。
/**
* 对接口post数据
*
*
* @access public
* @param string $url 接口请求地址。
* @param array $data 需要post的数据
* @return string 返回的json数据
*/
function post($url,$post_data){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
var_dump(curl_error($ch));exit;
return $output;
}