下面是详细的攻略和示例:
前置条件
- 在阿里云官网上创建一个OSS实例,并获取accessKeyId和accessKeySecret。
- 安装Yii2.0框架。
步骤一:安装OSS SDK
- 打开终端,切换到Yii2.0项目根目录下。
- 运行以下命令安装阿里云OSS SDK:
composer require aliyuncs/oss-sdk-php "~2.3.0"
- 等待安装完成后,在/config/web.php配置文件中添加以下代码:
'components' => [
'oss' => [
'class' => 'aliyun\oss\OSS',
'accessKeyId' => 'yourAccessKeyId',
'accessKeySecret' => 'yourAccessKeySecret',
'bucket' => 'yourBucketName',
'endpoint' => 'yourEndpoint',
],
],
- 其中,'yourAccessKeyId'和'yourAccessKeySecret'需要替换为自己阿里云OSS实例对应的accessKeyId和accessKeySecret,'yourBucketName'需要替换为自己创建的存储桶的名称,'yourEndpoint'需要替换为自己选择的OSS访问域名。
步骤二:上传图片到OSS
以下是一个上传图片到OSS的示例:
use yii\web\Controller;
class UploadController extends Controller
{
public function actionIndex()
{
$file = $_FILES['file']['tmp_name']; // 上传的文件本地路径
$filename = $_FILES['file']['name']; // 上传的文件名
$extension = pathinfo($filename, PATHINFO_EXTENSION); // 获取文件的扩展名
$oss = Yii::$app->oss;
$object = 'upload/' . uniqid() . '.' . $extension; // 存储到OSS上的文件名
$result = $oss->uploadFile($oss->bucket, $object, $file); // 上传文件到OSS
if ($result['statusCode'] == 200) {
echo '文件上传成功,OSS上的文件路径为:' . $result['info']['url'];
} else {
echo '文件上传失败';
}
}
}
- 以上上传图片的示例代码首先获取上传的文件本地路径和文件名,然后通过OSS SDK实例化一个OSS对象,将本地文件上传到OSS上,最后输出上传成功或失败的提示信息和OSS上的文件路径。
步骤三:下载OSS上的图片
以下是一个从OSS上下载图片的示例:
use yii\web\Controller;
class DownloadController extends Controller
{
public function actionIndex()
{
$object = 'upload/20221001123456789.jpg'; // 要下载的OSS上的文件路径
$oss = Yii::$app->oss;
$result = $oss->getObject($oss->bucket, $object); // 获取OSS上的文件内容
if ($result['statusCode'] == 200) {
$content = $result['content']; // 获取文件内容
header('Content-type: image/jpeg'); // 设置响应类型为jpg
echo $content; // 输出文件内容
} else {
echo '文件不存在或已被删除';
}
}
}
- 以上下载OSS上的图片的示例代码首先指定要下载的OSS上的文件路径,然后通过OSS SDK实例化一个OSS对象,获取该文件的内容,最后通过header()函数设置响应类型为jpg,并将文件内容输出。
步骤四:删除OSS上的图片
以下是一个删除OSS上的图片的示例:
use yii\web\Controller;
class DeleteController extends Controller
{
public function actionIndex()
{
$oss = Yii::$app->oss;
$object = 'upload/20221001123456789.jpg'; // 要删除的OSS上的文件路径
$result = $oss->deleteObject($oss->bucket, $object); // 删除OSS上的文件
if ($result['statusCode']==204) {
echo '文件删除成功';
} else {
echo '文件不存在或已被删除';
}
}
}
- 以上删除OSS上的图片的示例代码首先指定要删除的OSS上的文件路径,然后通过OSS SDK实例化一个OSS对象,删除该文件,最后输出删除成功或文件不存在/已被删除的提示信息。
希望以上攻略和示例代码能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例 - Python技术站