baker95935

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1 先下载源码

点击下载

https://github.com/tencentyun/cos-php-sdk-v5/releases/download/v2.0.8/cos-sdk-v5.tar.gz

有vendor文件夹的

 

2解压后再  当前目录新建了个upload.php

 

 

 

3  测试可上传  文件如下

<?php

function cos_file_upload($local_path,$server_key_name) 
{
	require dirname(__FILE__) . '/vendor/autoload.php';
	
	$secretId = "111"; //"云 API 密钥 SecretId";
	$secretKey = "222"; //"云 API 密钥 SecretKey";改成自己的
	$region = "ap-nanjing"; //设置一个默认的存储桶地域
	$cosClient = new Qcloud\Cos\Client(
	    array(
	        'region' => $region,
	        'schema' => 'https', //协议头部,默认为http
	        'credentials'=> array(
	            'secretId'  => $secretId ,
	            'secretKey' => $secretKey)));
  		
	 //定义数据
	 $upload_success = false;
     $img_url = '';
     $upload_msg = '';
	    
	try {
	    $result = $cosClient->upload(
	        $bucket = '1222', //请创建桶的时候 设置公共读写  改成自己的
	        $key = $server_key_name,
	        $body = fopen($local_path, 'rb')
	    );
	    // 请求成功
	     $data = $result->toArray() ;
	 	if(isset($data['Location']) && isset($data['Key'])){
        	$img_url = $data['Location'];
            $upload_success = true;
        }
	} catch (\Exception $e) {
	    // 请求失败
	   $upload_msg = $e->getMessage();
	}
	
	//返回信息
        if($upload_success){
            return array('id' => '0001','msg' => '上传成功','info'=>$img_url,'more'=>'');
        }
        else{
            return  array('id' => '0002','msg' => '上传失败','info'=>$upload_msg);//返回‘上传失败’,并返回错误信息
        }
}
if($_POST) {
	$local_path=$_FILES['file']['tmp_name'];//文件上传后的临时目录
	$server_key_name="123.jpg";//远程服务器存储的名字
    $res=cos_file_upload($local_path,$server_key_name);
    var_dump($res);exit;
} else {
?>
<form enctype="multipart/form-data"  method="post"     action="upload.php"  >
	 
		<input type="file" name="file" id ="file" class ="up-file" style="height:34px;width:600px;margin-left:-8px;border:1px solid #ccc">
		<input type="hidden" name="aa" id="aa" value=0>
		<input type="submit" id = 'btn' value = "提交" class = "btn">
</form>
<?php 
}
?>

 

几个注意的地方

1)经过测试目前只支持https的站点上传  不是https的会报错

 

curl error 60 

2) 桶相当于文件夹 就是把文件放到哪个文件夹

桶可以设置 各种权限  设置为公有  就可以上传后  然后直接访问

 

 

 

3)关于API秘钥

 

posted on 2020-05-11 10:24  baker95935  阅读(1098)  评论(0编辑  收藏  举报