阿里雲OSS
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';
}
}