阿里云OSS上传图片,图片处理 - Go语言中文社区

阿里云OSS上传图片,图片处理


下载阿里云OSS PHP demo  

git https://github.com/aliyun/aliyun-oss-php-sdk?spm=5176.doc32099.2.1.kErQam

demo结构如下



<?php
use OSSOssClient;
use OSSCoreOssException;
require_once "../alioss/autoload.php";


$accessKeyId = "xxxx";
$accessKeySecret = "xxxx";
$endpoint = "oss-cn-qingdao.aliyuncs.com";

try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
} catch (OssException $e) {
    print $e->getMessage();
}


$path = "../uploads/"; 
$extArr = array("jpg", "png", "gif"); 

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){ 
    $name = $_FILES['img']['name']; 
    $size = $_FILES['img']['size']; 

    if(empty($name)){ 
        echo '请选择要上传的图片'; 
        exit; 
    } 
    $ext = extend($name); 
    if(!in_array($ext,$extArr)){ 
        echo '图片格式错误!'; 
        exit; 
    } 
    if($size>(10000*1024)){ 
        echo '图片大小不能超过10000KB'; 
        exit; 
    } 
    $image_name = time().rand(100,999).".".$ext; 
    $tmp = $_FILES['img']['tmp_name']; 


    if(move_uploaded_file($tmp, $path.$image_name)){ 
        echo '<img src="'.$path.$image_name.'">'; 

        $object = "images/".$image_name;  //上传文件路径名称,OSS路径
        $content = file_get_contents($path.$image_name); //本地文件路径
        putObject($ossClient,'存储空间名称',$object,$content); //上传到OSS

        $img_url = $object;

        //unlink($path.$image_name);

    }else{ 
        echo '上传出错了!'; 
    } 
} 

//获取文件类型后缀 
function extend($file_name){ 
    $extend = pathinfo($file_name); 
    $extend = strtolower($extend["extension"]); 
    return $extend; 
} 


//createObjectDir($ossClient, '存储空间名称','目录名称');
/**
 * 创建虚拟目录
 *
 * @param OssClient $ossClient OSSClient实例
 * @param string $bucket 存储空间名称  $dir目录名称
 * @return null
 */
function createObjectDir($ossClient, $bucket, $dir) {
    try{
        $ossClient->createObjectDir($bucket, "dir");
    } catch(OssException $e) {
        printf(__FUNCTION__ . ": FAILEDn");
        printf($e->getMessage() . "n");
        return;
    }
    print(__FUNCTION__ . ": OK" . "n");
}

/**
 * 生成GetObject的签名url,主要用于私有权限下的读访问控制
 *
 * @param $ossClient OssClient OSSClient实例
 * @param $bucket string bucket名称
 * @return null
 */
function getSignedUrlForGettingObject($ossClient, $bucket)
{
    $object = "images/1497682096987.jpg";
    $timeout = 3600; // URL的有效期是3600秒
    $style = "image/resize,m_fixed,w_100,h_100/rotate,90";  //设置图片缩放高宽为100,旋转90度
    $options = array(OssClient::OSS_PROCESS => $style );
    try{
        $signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET", $options);
    } catch(OssException $e) {
        printf(__FUNCTION__ . ": FAILEDn");
        printf($e->getMessage() . "n");
        return;
    }
    print(__FUNCTION__ . ": signedUrl: " . $signedUrl. "n");
    /**
     * 可以类似的代码来访问签名的URL,也可以输入到浏览器中去访问
     */
    $request = new RequestCore($signedUrl);
    $request->set_method('GET');
    $request->send_request();
    $res = new ResponseCore($request->get_response_header(), $request->get_response_body(), $request->get_response_code());
    if ($res->isOK()) {
        print(__FUNCTION__ . ": OK" . "n");
    } else {
        print(__FUNCTION__ . ": FAILED" . "n");
    };
}

//getSignedUrlForGettingObject($ossClient,'存储空间名称');

/**
 * 上传图片
 *
 * @param OssClient $ossClient OSSClient实例
 * @param string $bucket 存储空间名称
 * @return null
 */
function putObject($ossClient, $bucket, $object, $content)
{
    try{
        $ossClient->putObject($bucket, $object, $content);
    } catch(OssException $e) {
        printf(__FUNCTION__ . ": FAILEDn");
        printf($e->getMessage() . "n");
        return;
    }
    print(__FUNCTION__ . ": OK" . "n");
}


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_33382313/article/details/73380571
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-28 03:53:34
  • 阅读 ( 1037 )
  • 分类:职场

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢