七牛php上传下载类,集成官方文档的方法
<?php
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
class qiniu
{
public $_accesskey = null;
public $_secretKey =null;
public $_bucket =null;
/**
* 构造函数
*
* @access public
* @param string $tpl
* @return void
*/
function __construct($accesskey=null,$secretKey=null,$bucket =null)
{
$this->_accesskey=$accesskey;
$this->_secretKey=$secretKey;
$this->_bucket=$bucket;
}
function gettoken(){
$auth = new Auth($this->_accessKey, $this->_secretKey);
$bucket = $this->_bucket;
$token = $auth->uploadToken($bucket);
return $token;
}
function uploadstring($string){
//$string是字符串
$auth = new Auth($this->_accesskey, $this->_secretKey);
$bucket = $this->_bucket;
// 设置put policy的其他参数, 上传回调
//$opts = array(
// 'callbackUrl' => 'http://www.callback.com/',
// 'callbackBody' => 'name=$(fname)&hash=$(etag)'
// );
//$token = $auth->uploadToken($bucket, null, 3600, $opts);
$token = $auth->uploadToken($bucket);
$uploadMgr = new UploadManager();
list($ret, $err) = $uploadMgr->put($token, null, $string);
echo "\n====> put result: \n";
if ($err !== null) {
return $err;
} else {
return $ret;
}
}
function uploadfile($file=null){
//$file是文件路径
$auth = new Auth($this->_accesskey, $this->_secretKey);
$bucket = $this->_bucket;
// 设置put policy的其他参数, 上传回调
//$opts = array(
// 'callbackUrl' => 'http://www.callback.com/',
// 'callbackBody' => 'name=$(fname)&hash=$(etag)'
// );
//$token = $auth->uploadToken($bucket, null, 3600, $opts);
$token = $auth->uploadToken($bucket);
$uploadMgr = new UploadManager();
list($ret, $err) = $uploadMgr->putFile($token, null, $file);
if ($err !== null) {
return $err;
} else {
return $ret;
}
}
function download($resource,$filecode,$tosource=null,filename="file"){
//$resource是bucket的网址,$filecode是文件的码,$tosource是要下载的文件夹路径
$auth = new Auth($this->_accesskey, $this->_secretKey);
$baseUrl = $resource.'/'.$filecode;
$authUrl = $auth->privateDownloadUrl($baseUrl);
$this->download_remote_file_with_curl($authUrl, $tosource.time().$filename);
return $authUrl;
}
function download_remote_file_with_curl($file_url, $save_to)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch,CURLOPT_URL,$file_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$file_content = curl_exec($ch);
curl_close($ch);
$downloaded_file = fopen($save_to, 'w');
fwrite($downloaded_file, $file_content);
fclose($downloaded_file);
}
}
?>
七牛php上传下载类,集成官方文档的方法的更多相关文章
- ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64)
ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64) 七牛图片上传 SDK(.NET 版本):https://developer.qiniu.com/kodo/sdk/ ...
- 一个命令完成[打包+同步七牛cdn+上传服务器]
webpack+gulp+qshell+npm-scripts实现一个命令完成[打包+同步cdn+上传服务器] 说明 由于我们用的七牛云存储,所以cdn也是走的七牛,所以并不适用于其他的cdn,但是思 ...
- C#使用七牛云存储上传下载文件、自定义回调
项目需要将音视频文件上传服务器,考虑并发要求高,通过七牛来实现. 做了一个简易的压力测试,同时上传多个文件,七牛自己应该有队列处理并发请求,我无论同时提交多少个文件,七牛是批量一个个排队处理了. 一个 ...
- FTP上传下载类
public class FtpOperation { public static void UploadFile(FileInfo fileinfo, string targetDir, strin ...
- 七牛图片上传JSSDK
BASE64图片上传 接口说明: POST /putb64/<Fsize>/key/<EncodedKey>/mimeType/<EncodedMimeType>/ ...
- 七牛文件上传-python
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import os from sevencow import CowException ...
- 两个七牛app上传小脚本
把要更新的app放到/home/data下面 安卓: cat upload_apk.sh #!/bin/bashUser=xxxxx@qq.comPass=xxxxxxqrsctl-v3.1.2016 ...
- Android File类 根据官方文档理解(转)
File有四个构造函数 public File(File dir,String name) 参数为File和String,File制定构造的新的File对象的路径 ...
- Android File类 根据官方文档理解
File有四个构造函数 public File(File dir,String name) 参数为File和String,File制定构造的新的File对象的路径 ...
随机推荐
- 清除Linux系统多余引导选项
由于我把系统给升级(update)了,在grub引导模式出现新旧版本(Grub与Grub2)的引导系统分别为正常启动和进入恢复模式各2个引导项,如下图显示:百度找不到相关或类似的教程,只好半夜起来研究 ...
- Java我来了
七天的C#集训,第一天接触Java,觉得很多相似的地方,尝试用eclipse码了几句(有些差别,毕竟没有写C#那么流畅),总体来说觉得还不错,对自己接下来要求是,更加熟练并且牢记Java的命令,更加深 ...
- CAD动态绘制多段线(com接口)
主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...
- CAD在网页中得到批注信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- Appium 教您完美win10安装Appium1.7.2支持win客户端自动化
参考内容: https://testerhome.com/topics/10193https://testerhome.com/topics/8223https://testerhome.com/to ...
- S-HR之OSF
1):getWorkDayCount ->ArrayList data = (ArrayList) com.kingdee.shr.rpts.ctrlreport.osf.OSFExecutor ...
- 65.dynamic mapping
主要知识点: 理解dynamic mapping 定制dynamic mapping 更改default dynamic mapping 一.理解dynamic mapping 1.基本概念 ...
- PAT 1097. Deduplication on a Linked List (链表)
Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated ...
- docker的容器可视化工具portainer
1.搜索镜像 [root@holly ~]# docker search portainer 2.下载portainer [root@holly ~]# docker pull portainer/p ...
- 【POJ 1981】Circle and Points(已知圆上两点求圆心坐标)
[题目链接]:http://poj.org/problem?id=1981 [题意] 给你n个点(n<=300); 然后给你一个半径R: 让你在平面上找一个半径为R的圆; 这里R=1 使得这个圆 ...