1.先将图片上传到uploads中,获取图片的savename
2.将图片上传到oss上,addossimg($ossPath, $path)第一个参数为oss存放图片的路径,第二个参数为本地的路径
3.返回图片的信息
代码如下:
控制器中的方法为:
/*修改头像*/
public function check_icon()
{
if (IS_POST) {
if (isset($_FILES['user_icon']) && $_FILES['user_icon']['error'] == 0) {
//delossimg('Admin/' . $pre_icon['user_icon']);
$_POST['user_icon'] = uploadimg('user_icon', 'Property', '');
}
echo 100001;
} else {
echo 100003;
}
}
公共函数中的方法:
/***************图片上传处理**************/
function uploadimg($pic, $path, $ossPath){
$upload = new \Think\Upload(array(
'subName' => '',
'maxSize' => 2 * 1024 * 1024,
'exts' => array('jpg', 'gif', 'png', 'jpeg'),
'rootPath' => './Public/Uploads/',
'savePath' => $path . '/',
));
$info = $upload->upload();
if ($info) {
$img = $info[$pic]['savename'];
$ossPath .= $path . '/' . $img;
$path = './Public/Uploads/' . $path . '/' . $img;
$result = addossimg($ossPath, $path);
if ($result == '1001') {
@unlink($path);
return $_POST[$pic] = $img;
}
} else {
print_r(json_encode(array('code' => 100001, 'state' => '图片大于2M或者上传格式不正确')));
eixt;
}
return $upload->getError();
}
/*
删除oss服务器上的多余图片
*/
function delossimg($object)
{
/* @param string $accessKeyId 从OSS获得的AccessKeyId
* @param string $accessKeySecret 从OSS获得的AccessKeySecret
* @param string $endpoint 您选定的OSS数据中心访问域名,例如Bucket 域名(外网访问的域名)
*/
$success = new \Home\Service\OSS\OssClient('JR1xELgBWrNYDzLI', '2ybKSKdjwRkV4ApanrDUBDHd8BHzM6', 'http://zhaoyuyuntest.oss-cn-hangzhou.aliyuncs.com');
try {
$success->deleteObject('zhaoyuyuntest', $object);
return '1001';
} catch (Exception $e) {
return '1002';
}
}
/*上传到oss服务器上的图片*/
function addossimg($object, $filePath)
{
/* @param string $accessKeyId 从OSS获得的AccessKeyId
* @param string $accessKeySecret 从OSS获得的AccessKeySecret
* @param string $endpoint 您选定的OSS数据中心访问域名,例如Bucket 域名(外网访问的域名)
*/
$success = new \Home\Service\OSS\OssClient('LTAI4Y9OskuEo4fH', 'a3OjuLH7LlglC3kX0Q0MbupeEZEvFk', 'http://myl6620073.oss-cn-beijing.aliyuncs.com');
try {
$success->uploadFile('myl6620073', $object, $filePath);
return '1001';
} catch (Exception $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return '1002';
}
}