php---将网络图片上传到七牛云存储
一、获取已知网络图片数据
使用curl读取图片数据
public function getImgData($img_url)
{
$ch = curl_init($img_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
//读取图片数据
$rawData = curl_exec($ch);
curl_close($ch);
return $rawData;
}
二、php上传图片到七牛云
1、配置七牛信息
$accessKey = '七牛云AccessKey';
$secretKey = '七牛云SecretKey';
$qiniu_domain_url = '空间域名';
$bucket = '存储桶名称';
2、上传图片,返回值:$uploadurl即为上传到七牛云的图片地址
//引入七牛云sdk
require_once API_ROOT.'/../sdk/qiniu/autoload.php';
//$img_url:网络图片地址
$imageData = $this->getImgData($img_url);
$auth = new \Qiniu\Auth($accessKey, $secretKey);
$token = $auth->uploadToken($bucket);
$key = 'qrurl_'.$uid.'.png';//存储图片名称
$up = new \Qiniu\Storage\UploadManager();
$mime = 'image/jpeg';
list($rest, $err) = $up->put($token, $key, $imageData, null, $mime);
if ($err) {
echo '<pre>';
print_r($err);
} else {
echo '<pre>';
print_r($rest);
$uploadurl = $qiniu_domain_url.$rest['key'];//七牛存储图片地址
}
3、别忘记在文件顶部引用下qiniu内部文件
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
use Qiniu\Storage\BucketManager;
4、本文中使用的七牛sdk下载地址:
链接:https://pan.baidu.com/s/1RUuYcKKU7CW1p9Uc_xWx_g
提取码:r5x4
复制这段内容后打开百度网盘手机App,操作更方便哦