1. 程式人生 > >阿里雲OSS

阿里雲OSS

1.先將圖片上傳到uploads中,獲取圖片的savename

2.將圖片上傳到oss上,addossimg($ossPath, $path)第一個引數為oss存放圖片的路徑,第二個引數為本地的路徑

3.返回圖片的資訊

程式碼如下:

控制器中的方法為:

    /*修改頭像*/
    public function check_icon()
    {
        if (IS_POST) {
            if (isset($_FILES['user_icon']) && $_FILES['user_icon']['error'] == 0) {
                //delossimg('Admin/' . $pre_icon['user_icon']);
                $_POST['user_icon'] = uploadimg('user_icon', 'Property', '');
            }
            echo 100001;
        } else {
            echo 100003;
        }

    }

公共函式中的方法:

/***************圖片上傳處理**************/

function uploadimg($pic, $path, $ossPath)
{
    $upload = new \Think\Upload(array(
        'subName' => '',
        'maxSize' => 2 * 1024 * 1024,
        'exts' => array('jpg', 'gif', 'png', 'jpeg'),
        'rootPath' => './Public/Uploads/',
        'savePath' => $path . '/',
    ));
    $info = $upload->upload();
    if ($info) {
        $img = $info[$pic]['savename'];
        $ossPath .= $path . '/' . $img;
        $path = './Public/Uploads/' . $path . '/' . $img;
        $result = addossimg($ossPath, $path);
        if ($result == '1001') {
            @unlink($path);
            return $_POST[$pic] = $img;
        }
    } else {
        print_r(json_encode(array('code' => 100001, 'state' => '圖片大於2M或者上傳格式不正確')));
        eixt;
    }
    return $upload->getError();

}

/*
刪除oss伺服器上的多餘圖片
*/
function delossimg($object)
{
    /* @param string $accessKeyId 從OSS獲得的AccessKeyId
    * @param string $accessKeySecret 從OSS獲得的AccessKeySecret
    * @param string $endpoint 您選定的OSS資料中心訪問域名,例如Bucket 域名(外網訪問的域名)
    */
    $success = new \Home\Service\OSS\OssClient('JR1xELgBWrNYDzLI', '2ybKSKdjwRkV4ApanrDUBDHd8BHzM6', 'http://zhaoyuyuntest.oss-cn-hangzhou.aliyuncs.com');
    try {
        $success->deleteObject('zhaoyuyuntest', $object);
        return '1001';
    } catch (Exception $e) {
        return '1002';
    }
}


/*上傳到oss伺服器上的圖片*/
function addossimg($object, $filePath)
{
    /* @param string $accessKeyId 從OSS獲得的AccessKeyId
     * @param string $accessKeySecret 從OSS獲得的AccessKeySecret
     * @param string $endpoint 您選定的OSS資料中心訪問域名,例如Bucket 域名(外網訪問的域名)


     */
    $success = new \Home\Service\OSS\OssClient('LTAI4Y9OskuEo4fH', 'a3OjuLH7LlglC3kX0Q0MbupeEZEvFk', 'http://myl6620073.oss-cn-beijing.aliyuncs.com');
    try {
        $success->uploadFile('myl6620073', $object, $filePath);
        return '1001';
    } catch (Exception $e) {
        printf(__FUNCTION__ . ": FAILED\n");
        printf($e->getMessage() . "\n");
        return '1002';
    }
}