今天博主在实现一个头像上传功能,需要将图片上传至阿里云的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,如果觉得不错,请麻烦点赞,支持下博主~
更多文章请关注微信公众号