写在前面
很多人因为服务器空间少、带宽小等原因会选择把图片放在别的网站上然后插入自己的网站。这在节省带宽的同时也带来了一些问题,像是那些网站本身不稳定的话就会造成图片无法加载之类的,,,,
呀呀呀呀,上面那段话已经是第三遍说了,这次给大家带来点不一样的,没有防盗链还稳定的阿里图床!!!!!网上的相关源码很少,而且大部分都不能用,稀缺资源警告
这次的代码是在网上的各种能用不能用的源码中拼凑修改而来的,
再说一遍 阿里图床没有防盗链!!!
代码
<?php
header("Access-Control-Allow-Origin: *"); // 允许任意域名发起的跨域请求
header('Access-Control-Allow-Headers: X-Requested-With,X_Requested_With');
$file = $_FILES['file'];
if (is_uploaded_file($file['tmp_name'])){
$arr = pathinfo($file['name']);
$ext_suffix = $arr['extension'];
$allow_suffix = array("gif", "jpeg", "jpg", "png", "GIF", "JPEG", "JPG", "PNG");
if(!in_array($ext_suffix, $allow_suffix)){
imgurl(['code'=> -1,'imgurl'=> '上传格式不支持']);
}
$new_filename = time().rand(100,1000).'.'.$ext_suffix;
if (move_uploaded_file($file['tmp_name'], $new_filename)){
$data = upload('https://kfupload.alibaba.com/mupload',$new_filename);
$pattern = '/"url":"(.*?)"/';
preg_match($pattern, $data, $match);
@unlink($new_filename);
if($match && $match[1]!=''){
imgurl(['code'=> 1,'imgurl'=> $match[1]]);
}else{
imgurl(['code'=> -1,'msg'=> '上传失败']);
}
}else{
imgurl(['code'=> -1,'msg'=> '上传数据错误']);
}
}else{
imgurl(['code'=> -1,'msg'=> '上传数据错误']);
}
function upload($url,$file) {
return get_url($url,[
'scene' => 'aeMessageCenterV2ImageRule',
'name' =>$file,
'file' => new \CURLFile(realpath($file))
]);
}
function get_url($url,$post){
$ch = curl_init();
curl_setopt($ch,CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
if($post){
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
}
if(curl_exec($ch) === false){
echo 'Curl error: ' . curl_error($ch);
}
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function imgurl($data){
exit(json_encode($data));
}
写在后面
阿里图床的缺点
上传图片最大为4M,,,其实我觉得够用了
阿里图床的优点
除了上面的缺点都是优点,最主要的是没有防盗链!!!!!
使用问题
关于如何使用我将会在以后的文章中更新
会包括如何调用接口,如何解决防盗链等
即将更新一个图床上传页面源码,,,
原创文章,作者:kai233,如若转载,请注明出处:https://www.sorkai.com/archives/79