七牛上传php_php上传文件与图片到七牛的实例详解

上传文件到七牛最简单的方式就是使用七牛官方最新的SDK

安装

通过composer,这是推荐的方式,可以使用composer.json 声明依赖,或者运行下面的命令。SDK 包已经放到这里 qiniu/php-sdk

composer require qiniu/php-sdk

直接下载安装,SDK 没有依赖其他第三方库,但需要参照 composer的autoloader,增加一个自己的autoloader程序。

运行环境

625f19de4ddb

使用方法

上传

use Qiniu\Storage\UploadManager;

use Qiniu\Auth;

...

$upManager = new UploadManager();

$auth = new Auth($accessKey, $secretKey);

$token = $auth->uploadToken($bucketName);

list($ret, $error) = $upManager->put($token, 'formput', 'hello world');

...

测试

./vendor/bin/phpunit tests/Qiniu/Tests/

常见问题

$error保留了请求响应的信息,失败情况下ret 为none, 将$error可以打印出来,提交给我们。

API 的使用 demo 可以参考 单元测试。

DEMO 封装

注:demo来自网友,如有侵权请联系删除。

1、上传文件到七牛

use Qiniu\Auth;

use Qiniu\Storage\UploadManager;

$cfg = [

'access' => 'YOUR_ACCESS_KEY',

'secret' => 'YOUR_SECRET_KEY',

'bucket' => 'YOUR_BUCKET',

'domain' => 'https://images.your_domain.com'

];

$auth = new Auth($cfg['access'], $cfg['secret']);

// 创建一个过期时间为1小时的临时上传令牌

$token = $auth->uploadToken($cfg['bucket'], null, 3600);

$filePath = "./file.png";

$uploadMgr = new UploadManager();

list($ret, $err) = $uploadMgr->putFile($token, null, $filePath);

if($err !== null) {

$this->err = $err;

} else {

echo $cfg['domain'] . '/' . $ret['key'];

}

2、php向七牛上传base64编码的图片

require_once 'vendor/autoload.php';

header('Access-Control-Allow-Origin:*');

use Qiniu\Auth;

$bucket = '要上传的空间名';

$accessKey = '你的accessKey';

$secretKey = '你的secretKey';

$auth = new Auth($accessKey, $secretKey);

//获取上传所需的token

$upToken = $auth->uploadToken($bucket, null, 3600);

function requestByCurl($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 "

";

echo request_by_curl('http://upload.qiniu.com/putb64/-1',$str,$upToken);

echo "

";
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值