首先要下载阿里云oss的sdk
进入到项目根目录下,使用composer下载阿里云oss的sdk
composer require aliyuncs/oss-sdk-php
下载好后,就可以在thinkphp项目中使用了。
下面以上传图片为例,给大家演示一下thinkphp如何上传图片到阿里云oss上
前端代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图片上传</title>
</head>
<body>
<form action="/index.php/index/index/upload" enctype="multipart/form-data" method="post">
<input type="file" name="image" /> <br>
<input type="submit" value="上传" />
</form>
</body>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图片上传</title>
</head>
<body>
<form action="/index.php/index/index/upload" enctype="multipart/form-data" method="post">
<input type="file" name="image" /> <br>
<input type="submit" value="上传" />
</form>
</body>
</html>
后端代码:
<?php
namespace app\index\controller;
use think\Controller;
use OSS\OssClient;
use OSS\Core\OssException;
class Index extends Controller
{
public function index()
{
return $this->fetch();
}
public function upload()
{
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
$info = $file->getInfo();
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
$accessKeyId = "yourAccessKeyId";//这里填你自己的accessKeyId
$accessKeySecret = "yourAccessKeySecret";//这里填你自己的accessKeySecret
// Endpoint以深圳为例,其它地区请按实际情况填写。
$endpoint = "http://oss-cn-shenzhen.aliyuncs.com";
// 设置存储空间名称。
$bucket= "yourBucketName";//这里填你自己的bucket空间名称
// 设置文件名称。
$object = $info['name'];
//由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。
$filePath = $file->getPathName();
try{
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$ossClient->uploadFile($bucket, $object, $filePath);
} catch(OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
return '上传成功';
}
}
namespace app\index\controller;
use think\Controller;
use OSS\OssClient;
use OSS\Core\OssException;
class Index extends Controller
{
public function index()
{
return $this->fetch();
}
public function upload()
{
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
$info = $file->getInfo();
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
$accessKeyId = "yourAccessKeyId";//这里填你自己的accessKeyId
$accessKeySecret = "yourAccessKeySecret";//这里填你自己的accessKeySecret
// Endpoint以深圳为例,其它地区请按实际情况填写。
$endpoint = "http://oss-cn-shenzhen.aliyuncs.com";
// 设置存储空间名称。
$bucket= "yourBucketName";//这里填你自己的bucket空间名称
// 设置文件名称。
$object = $info['name'];
//由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。
$filePath = $file->getPathName();
try{
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$ossClient->uploadFile($bucket, $object, $filePath);
} catch(OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
return '上传成功';
}
}