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 QcloudCosClient( 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;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秘钥