2

最近一直在研究如何通过php向七牛云存储上传base64编码的图片,求助百度,谷歌都没有找到答案,无奈只能自己研究,元旦还在敲代码也算是够狠的,值得高兴的是成功解决了该问题,与大家分享一下我的代码:

<?php
require_once  'vendor/autoload.php';
header('Access-Control-Allow-Origin:*');

use Qiniu\Auth;

$bucket = '要上传的空间名';
$accessKey = '你的accessKey';
$secretKey = '你的secretKey';
$auth = new Auth($accessKey, $secretKey);
$upToken = $auth->uploadToken($bucket, null, 3600);//获取上传所需的token


function request_by_curl($remote_server,$post_string,$upToken) {  

  $headers = array();
  $headers[] = 'Content-Type:image/png';
  $headers[] = 'Authorization:UpToken '.$upToken;
  $ch = curl_init();  
  curl_setopt($ch, CURLOPT_URL,$remote_server);  
  //curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_HTTPHEADER ,$headers);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  //curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
  curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  $data = curl_exec($ch);  
  curl_close($ch);  
  
  return $data;  
}  
$str="base64编码的字符串";
echo "<pre>";
echo request_by_curl('http://upload.qiniu.com/putb64/-1',$str,$upToken);
echo "</pre>";

成功get。


silenceboy
1.1k 声望46 粉丝

coding for fun