这两个东西要复制出来 要用的
文件已给好命名空间
if (!function_exists('file_oss_ini')) {
/***
* OSS配置
* @author tangshuai
* @date 2019.5.29
* @return OssClient
* @throws OssException
*/
function file_oss_ini(){
$accessKeyId = "" ;
$accessKeySecret = "";
// Endpoint以杭州为例,其它Region请按实际情况填写。
$endpoint = "oss-cn-hangzhou.aliyuncs.com";
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
return $ossClient;
}
}
if (!function_exists('oss_error')) {
/***
* @author tangshuai
* @date 2019.5.30
* @param string $function 必传 文件名
* @param string $cont 必传 错误信息
* @param string $bucket 选填 储存空间 默认 shjzsj
* @throws OssException 异常抛出
*/
function oss_error($function='', $cont='', $bucket='shjzsj'){
$ini = file_oss_ini();
$file_path = date('Ymd');
$file_name = date('His');
$log = 'log/'.$file_path.'/'.$file_name.'.log';
$content = $function . ' => '. $cont;
$ini->putObject($bucket, $log, $content);
}
}
if (!function_exists('oss_upload')) {
/***
* OSS上传
* @author tangshuai
* @date 2019.5.29
* @param string $file 必传 文件名 从 upload/ 之后开始写
* @param string $type_ 必传 文件分类 ['user', 'data', 'goods', 'shop']
* @param string $path 选填 前后端文件归总 默认前端 ['home', 'admin']
* @param string $bucket 选填 储存空间 默认 shjzsj
* @return string 返回 JSON
* @throws OssException 异常抛出
*/
function oss_upload($file='', $type_, $path='home', $bucket="shjzsj"){
$path_arr = ['home', 'admin'];
$type_arr = ['user', 'data', 'goods', 'shop'];
if ( !in_array($path, $path_arr) ){
return returnJson(0, '路径参数 异常!', 'error');
}
if ( is_array($type_) ) {
$type = $type_['0'];
$file_path = $type_['1'];
}else{
$type = $type_;
$file_path = date('Ymd');
}
if ( !in_array($type, $type_arr) ){
return returnJson(0, '分类参数 异常!', 'error');
}
if ($file == ''){
return returnJson(0, '文件参数 异常!', 'error');
}
$suffix = substr($file,strrpos($file,'.'));
// 重命名
$file_name = date('His').rand(0000, 9999).md5(rand(0000, 9999)).$suffix;
$filePath = WEB_ROOT . "upload/" . $file;
$object = $path . '/' . $type . '/' . $file_path . '/' . $file_name;
$ini = file_oss_ini();
try {
$res = $ini->uploadFile($bucket, $object, $filePath);
if ($res['info']['http_code'] == 200 ){
// 返回成功
unlink($filePath);
return returnJson(1, $res['info']['url'], 'success');
}else{
oss_error('UPLOAD', 'http_code : '.$res['info']['http_code']);
return returnJson(0, 'http_code: '. $res['info']['http_code'], 'error');
}
} catch (OssException $e) {
oss_error('UPLOAD', $e->getMessage());
return returnJson(0, $e->getMessage(), 'error');
}
}
}
if (!function_exists('oss_delete')) {
/***
* OSS删除
* @author tangshuai
* @date 2019.5.29
* @param string $file 必传 文件名
* @param string $bucket 选填 储存空间 默认 shjzsj
* @return string 返回 JSON
* @throws OssException 异常抛出
*/
function oss_delete($file='', $bucket="shjzsj"){
if ($file == ''){
return returnJson(0, '文件不存在!', 'error');
}
$left = 'http:\/\/shjzsj.oss-cn-hangzhou.aliyuncs.com\/';
$file = str_replace($left,"", $file);
$ini = file_oss_ini();
try{
$res = $ini->deleteObject($bucket, $file);
$code = $res['info']['http_code'];
if ($code == 200){
return returnJson(1, 'success', 'success');
}else{
oss_error('DELETE', 'http_code : '.$code);
return returnJson(0, 'http_code : '.$code, 'error');
}
} catch(OssException $e) {
oss_error('DELETE', $e->getMessage());
return returnJson(0, $e->getMessage(), 'error');
}
}
}
if (!function_exists('oss_watermark')) {
/***
* OSS 图片添加 文字水印
* @author tangshuai
* @date 2019.5.29
* @param string $img 必传 文件名
* @param string $type 必传 文件分类 ['user', 'data', 'goods', 'shop']
* @param string $path 选填 前后端文件归总 默认前端 ['home', 'admin']
* @param string $text 选填 水印文字 默认前端 'www.jzsj.com 建筑设计网'
* @return string 返回 JSON
* @throws OssException 异常抛出
*/
function oss_watermark($img='', $type='', $path='home', $text='www.jzsj.com 建筑设计网'){
if ($img == ''){
return returnJson(0, '参1不可为空!', 'error');
}
if ($type == ''){
return returnJson(0, '参2不可为空!', 'error');
}
// 表示文字水印的文字内容(必须编码)
$str = base64_encode($text);
// 表示文字水印的文字类型(必须编码)
$font_type = 'ZmFuZ3poZW5naGVpdGk=';
$param = '?x-oss-process=image/watermark,type_'.$font_type.
',text_'.$str.',t_70,color_ffffff,size_30';
$suffix = substr($img,strrpos($img,'.'));
$image = $img.$param;
$get = file_get_contents($image);
file_put_contents(WEB_ROOT . "upload/tmp".$suffix, $get);
$img_name = "tmp".$suffix;
return oss_upload($img_name, $type, $path);
}
}