阿里云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';
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_40534405/article/details/80972400