<?php
require_once dirname(realpath(__FILE__)).DIRECTORY_SEPARATOR.'Aliyunoss'.DIRECTORY_SEPARATOR.'sdk.class.php';
class AliossResponse {
/**
* 上传本地文件到云服务器上
* sunjunfeng 2015-07-04
* 返回参数
*/
static public function uploadFile($file_path){
$oss_sdk_service = new ALIOSS(null,null,C('DEFAULT_OSS_INTERNAL_HOST'));
//设置是否打开curl调试模式
//$oss_sdk_service->set_debug_mode(FALSE);
//设置开启三级域名,三级域名需要注意,域名不支持一些特殊符号,所以在创建bucket的时候若想使用三级域名,最好不要使用特殊字符
$oss_sdk_service->set_enable_domain_style(TRUE);
$bucket = OSS_BUCKET;
//$filePrefix = 'market/';//为了满足新的阿里云OSS地址,需要去掉这个目录
$filePrefix = '';
try {
$suffix = strtolower(pathinfo($file_path,PATHINFO_EXTENSION));
if ($suffix == 'jpg' || $suffix == 'gif' || $suffix == 'png' || $suffix == 'jpeg'){
$imagesize = getimagesize($file_path);
$file_name = md5_file($file_path).'_'.$imagesize[0].'x'.$imagesize[1].'.'.$suffix;
$objectname = $filePrefix.'image/'.substr($file_name, 0,2).'/'.$file_name;
$relativeobjectname = 'image/'.substr($file_name, 0,2).'/'.$file_name;
// 判断aliyunOss是否存在该文件(文件已做MD5)
$decideFilename = C('RES_UPDATE_URL').'image/'.substr($file_name, 0,2).'/'.$file_name;
if (self::netFileExists($decideFilename) ){
$header['etag'] = md5_file($file_path);
$header['x-oss-request-url'] = $decideFilename;
}else {
$response = $oss_sdk_service->upload_file_by_file($bucket, $objectname, $file_path);
$header = $response->header;
$header['x-oss-request-url'] = C('RES_UPDATE_URL').$relativeobjectname;
}
$header['oss_relative_url'] = $relativeobjectname;
$header['oss_response_image_w'] = $imagesize[0];
$header['oss_response_image_h'] = $imagesize[1];
}else {
$file_name = md5_file($file_path).'.'.$suffix;
$objectname = $filePrefix.'apk/'.substr($file_name, 0,2).'/'.$file_name;
$relativeobjectname = 'apk/'.substr($file_name, 0,2).'/'.$file_name;
// 判断aliyunOss是否存在该文件(文件已做MD5)
$decideFilename = C('RES_UPDATE_URL').'apk/'.substr($file_name, 0,2).'/'.$file_name;
if (self::netFileExists($decideFilename)){
$header['etag'] = md5_file($file_path);
$header['x-oss-request-url'] = $decideFilename;
}else {
$response = $oss_sdk_service->upload_file_by_file($bucket, $objectname, $file_path);
$header = $response->header;
$header['etag'] = md5_file($file_path);
}
$header['oss_relative_url'] = $relativeobjectname;
}
$header['oss_response_status'] = 1;
$header['oss_response_message'] = 'OK';
return $header;
}catch (Exception $ex){
$return = array();
$return['oss_response_status'] = 100;
$return['oss_response_message'] = $ex->getMessage();
return $return;
}
}
//判断外网文件是否存在并且大小不为0
public function netFileExists($decideFilename){
$urlHeader = get_headers($decideFilename, 1);
if (strpos($urlHeader[0], '200') && (int)$urlHeader['Content-Length'] != 0){
return true;
}else {
return false;
}
}
}
require_once dirname(realpath(__FILE__)).DIRECTORY_SEPARATOR.'Aliyunoss'.DIRECTORY_SEPARATOR.'sdk.class.php';
class AliossResponse {
/**
* 上传本地文件到云服务器上
* sunjunfeng 2015-07-04
* 返回参数
*/
static public function uploadFile($file_path){
$oss_sdk_service = new ALIOSS(null,null,C('DEFAULT_OSS_INTERNAL_HOST'));
//设置是否打开curl调试模式
//$oss_sdk_service->set_debug_mode(FALSE);
//设置开启三级域名,三级域名需要注意,域名不支持一些特殊符号,所以在创建bucket的时候若想使用三级域名,最好不要使用特殊字符
$oss_sdk_service->set_enable_domain_style(TRUE);
$bucket = OSS_BUCKET;
//$filePrefix = 'market/';//为了满足新的阿里云OSS地址,需要去掉这个目录
$filePrefix = '';
try {
$suffix = strtolower(pathinfo($file_path,PATHINFO_EXTENSION));
if ($suffix == 'jpg' || $suffix == 'gif' || $suffix == 'png' || $suffix == 'jpeg'){
$imagesize = getimagesize($file_path);
$file_name = md5_file($file_path).'_'.$imagesize[0].'x'.$imagesize[1].'.'.$suffix;
$objectname = $filePrefix.'image/'.substr($file_name, 0,2).'/'.$file_name;
$relativeobjectname = 'image/'.substr($file_name, 0,2).'/'.$file_name;
// 判断aliyunOss是否存在该文件(文件已做MD5)
$decideFilename = C('RES_UPDATE_URL').'image/'.substr($file_name, 0,2).'/'.$file_name;
if (self::netFileExists($decideFilename) ){
$header['etag'] = md5_file($file_path);
$header['x-oss-request-url'] = $decideFilename;
}else {
$response = $oss_sdk_service->upload_file_by_file($bucket, $objectname, $file_path);
$header = $response->header;
$header['x-oss-request-url'] = C('RES_UPDATE_URL').$relativeobjectname;
}
$header['oss_relative_url'] = $relativeobjectname;
$header['oss_response_image_w'] = $imagesize[0];
$header['oss_response_image_h'] = $imagesize[1];
}else {
$file_name = md5_file($file_path).'.'.$suffix;
$objectname = $filePrefix.'apk/'.substr($file_name, 0,2).'/'.$file_name;
$relativeobjectname = 'apk/'.substr($file_name, 0,2).'/'.$file_name;
// 判断aliyunOss是否存在该文件(文件已做MD5)
$decideFilename = C('RES_UPDATE_URL').'apk/'.substr($file_name, 0,2).'/'.$file_name;
if (self::netFileExists($decideFilename)){
$header['etag'] = md5_file($file_path);
$header['x-oss-request-url'] = $decideFilename;
}else {
$response = $oss_sdk_service->upload_file_by_file($bucket, $objectname, $file_path);
$header = $response->header;
$header['etag'] = md5_file($file_path);
}
$header['oss_relative_url'] = $relativeobjectname;
}
$header['oss_response_status'] = 1;
$header['oss_response_message'] = 'OK';
return $header;
}catch (Exception $ex){
$return = array();
$return['oss_response_status'] = 100;
$return['oss_response_message'] = $ex->getMessage();
return $return;
}
}
//判断外网文件是否存在并且大小不为0
public function netFileExists($decideFilename){
$urlHeader = get_headers($decideFilename, 1);
if (strpos($urlHeader[0], '200') && (int)$urlHeader['Content-Length'] != 0){
return true;
}else {
return false;
}
}
}