1.下载一个阿里云oss的sdk 也可以到阿里云 的OSS存储里面去下载
~~~
composer require aliyuncs/oss-sdk-php
~~~
2-在application同级目录的config.php的文件,配置信息放进去向下面这样
~~~
<?php
'appliy_oss'=>[
'KeyId' => '', //Access Key ID
'KeySecret' => '', //Access Key Secret
'Endpoint' => '', //阿里云oss 外网地址endpoint
'Bucket' => '', //Bucket名称
]
~~~
3-控制器
方法(一)
~~~
/*
* 图片上传到阿里云OSS
*/
public function upload_img_oss(){
$type=input("param.type","files");
$img = request()->file('file');
$resResult = Image::open($img);
// 尝试执行
try {
$config = Config('appliy_oss'); //获取Oss的配置
//实例化对象 将配置传入
$ossClient = new OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint']);
//这里是有sha1加密 生成文件名 之后连接上后缀
$fileName = $type.'/' . sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult->type();
//执行阿里云上传
$result = $ossClient->uploadFile($config['Bucket'], $fileName, $img->getInfo()['tmp_name']);
/**
* 这个只是为了展示
* 可以删除或者保留下做后面的操作
*/
/*$arr = [
//图片地址
'imgurl' => $result['info']['url'],
//数据库保存名称
'dbimgName' => $fileName
];*/
return json(["code"=> 1, "msg" => "上传成功", "url" => $result['info']['url']]);
} catch (OssException $e) {
// 上传失败获取错误信息0
return json(["code"=> 0, "msg" => $e->getMessage(), "url" => '']);
// return
}
/*//将结果输出
return $arr;*/
}
~~~
方法(二)
~~~
/*
* 图片上传到阿里云OSS
*/
public function upload_oss(){
$type=input("param.type","files");
$file = $_FILES;
$img = current($file);
// 尝试执行
try {
$config = Config('appliy_oss'); //获取Oss的配置
//实例化对象 将配置传入
$ossClient = new OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint']);
//获取文件后缀
$file_type=substr($img["type"],strripos($img["type"],"/")+1);
//这里是有sha1加密 生成文件名 之后连接上后缀
$fileName = $type.'/' . sha1(date('YmdHis', time()) . uniqid()). '.' .$file_type;
//执行阿里云上传
$result = $ossClient->uploadFile($config['Bucket'], $fileName, $img['tmp_name']);
/**
* 这个只是为了展示
* 可以删除或者保留下做后面的操作
*/
/*$arr = [
//图片地址
'imgurl' => $result['info']['url'],
//数据库保存名称
'dbimgName' => $fileName
];*/
return json(["code"=> 1, "msg" => "上传成功", "url" => $result['info']['url']]);
} catch (OssException $e) {
// 上传失败获取错误信息0
return json(["code"=> 0, "msg" => $e->getMessage(), "url" => '']);
}
}
~~~