PHP实现图片上传至阿里云OSS

PHP实现图片上传阿里云OSS

       今天博主在实现一个头像上传功能,需要将图片上传至阿里云的OSS,所以也是百度、谷歌了一番,但都不是很管用,所以自己研究了一番,并将上传的方法封装成一个类进行调用,下面向大家分享这个过程,在这之前先下载阿里云OSS的SDK

       下面先封装我们的上传类,命名为AliYunUpload,代码如下:

USE OSS\OssClient;
USE OSS\Core\OssException;

require "OssUpload/autoload.php";

class AliYunUpload
{

    /**
     * 上传图片
     * @param $dst
     * @param $getFile
     * @return mixed
     */
    function uploadImage($dst, $getFile)
    {
      #配置OSS基本配置
      $config = array(
            'KeyId' => '你的KeyId',
            'KeySecret' => '你的KeySecret',
            'Endpoint' => '你的Endpoint',
            'Bucket' => '上传的Bucket',
      );
      $ossClient = new OssClient(
        $config['KeyId'], 
        $config['KeySecret'], 
        $config['Endpoint']);
      #执行阿里云上传
      $result = $ossClient->uploadFile(
        $config['Bucket'], 
        $dst, 
        $getFile);
      #返回
      return $result;
    }
}

       封装完我们的上传类,然后便可以写我们的上传接口了,代码如下:

require '../comm/AliYunUpload.php';

#获取上传文件信息
$getFile = $_FILES['file']['tmp_name'];
#上传文件后缀
$ext = substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], '.')
 + 1);
#重命名文件上传名字
$dst = 'files/' . md5(time()) . '.' . $ext;
#执行阿里云上传
$aliyun = new AliYunUpload();
$url = $aliyun->uploadImage($dst, $getFile);
#根据显示返回信息
$json = json_encode(array(
    'code' => 200,
    'data' => $dst,
    'error' => ''
));
echo($json);

       这样,我们便完成了我们的接口封装,下面我们再写一个简单的HTML,进行调用,代码如下:

<html>
<head>
<meta charset="utf-8">
<title>上传图片</title>
</head>
<body>
<div style="width: 100%; height: 100%;">
<form action="接口地址" method="post" enctype="multipart/form-data">
    <label for="file">文件名:</label>
    <input type="file" name="file" id="file"><br>
    <input type="submit" name="submit" value="提交">
</form>
</div>
</body>

       这样我们便成功的实现了PHP上传图片至阿里云OSS,如果觉得不错,请麻烦点赞,支持下博主~


0条评论

发表评论