header("Content-type:text/html;charset=utf-8");date_default_timezone_set("Asia/Shanghai");require_onceAPPPATH.'/vendor/sts-server/aliyun-php-sdk-core/Config.php';useSts\Request\V20150401asSts;classAliyunsts{public functiongetSTS(){$content=$this->read_file(APPPATH.'/vendor/sts-server/config.json');$myjsonarray=json_decode($content);$accessKeyID=$myjsonarray->AccessKeyID;$accessKeySecret=$myjsonarray->AccessKeySecret;$roleArn=$myjsonarray->RoleArn;$tokenExpire=$myjsonarray->TokenExpireTime;$policy=$this->read_file(APPPATH.'/vendor/sts-server/'.$myjsonarray->PolicyFile);$iClientProfile= DefaultProfile::getProfile("cn-hangzhou",$accessKeyID,$accessKeySecret);$client=newDefaultAcsClient($iClientProfile);$request=newSts\AssumeRoleRequest();$request->setRoleSessionName("client_name");$request->setRoleArn($roleArn);$request->setPolicy($policy);$request->setDurationSeconds($tokenExpire);$response=$client->doAction($request);$rows=array();$body=$response->getBody();$content=json_decode($body);$rows['status'] =$response->getStatus();if($response->getStatus() ==200){$rows['AccessKeyId'] =$content->Credentials->AccessKeyId;$rows['AccessKeySecret'] =$content->Credentials->AccessKeySecret;$rows['Expiration'] =$content->Credentials->Expiration;$rows['SecurityToken'] =$content->Credentials->SecurityToken;$rows['Endpoint'] =$myjsonarray->Endpoint;$rows['BucketName'] =$myjsonarray->BucketName;}else{$rows['AccessKeyId'] ="";$rows['AccessKeySecret'] ="";$rows['Expiration'] ="";$rows['SecurityToken'] ="";$rows['Endpoint'] ="";$rows['BucketName'] ="";}echojson_encode($rows);return;}public functionread_file($fname){$content='';if(!file_exists($fname)) {echo"The file$fnamedoes not exist\n";exit(0);}$handle=fopen($fname,"rb");while(!feof($handle)) {$content.=fread($handle,10000);}fclose($handle);return$content;}}
//js部分$(function(){
$(".uploadImg0").change(function(e){
varmubiao = $(this).attr("mubiao");
varfiles = this.files;
for(vari=0;i
letfile = files[i];
varsuffix = file.name.substr(file.name.lastIndexOf("."));
varfileTypes = '.png;.jpg;.jpeg;.gif;.bmp';
if(fileTypes.indexOf(suffix)==-1){
alert("只支持图片上传")
return;
}
//文件大小限制if(file.size>20*1024*1024){
alert("文件不得大于20M")
return;
}
varobj=Date.parse(newDate()); // 这里是生成文件名varrand = Math.random();
vardate = newDate();
varx = date.toLocaleString().split(' '); //获取日期与时间varstoreAs = 'wenjianjia/'+ x[0] +'/'+ obj + rand; //命名空间storeAs = storeAs.replace(".","") + suffix;
OSSupload(storeAs,file,mubiao);
}
});
functionOSSupload(newfiles, file,mubiao)
{
varrand = Math.random();
OSS.urllib.request("********/getSTS?t="+rand, {method: 'GET'}, (err, response) => {
if(err) {
return;
}
try{
result = JSON.parse(response);
} catch(e) {
returnalert('parse sts response info error: '+ e.message);
}
letclient = newOSS({
accessKeyId: result.AccessKeyId,
accessKeySecret: result.AccessKeySecret,
stsToken: result.SecurityToken,
endpoint: result.Endpoint,
bucket: result.BucketName,
});
//newfiles表示上传的object name , file表示上传的文件client.multipartUpload(newfiles, file, {
mime: 'image/jpeg',
progress: async function(p, checkpoint, resp) {
//console.log(p);}
}).then(function(result) {
if((result.res.status == 200) && (result.res.statusCode == 200) && (result.res.requestUrls)) {
varr = result.res.requestUrls[0];
varurl = r.split('?')[0];
;
} else{
alert("上传失败,请联系管理员:");
}
}).catch(function(err) {
console.log("错误");
console.log(err);
});
});
}
})
//阿里云后台设置子账户,分配各种权限,设置上传目录header权限,php后台设置跨域
header('Access-Control-Allow-Origin:*');// *代表允许任何网址请求header('Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE,PUT');// 允许请求的类型header('Access-Control-Allow-Credentials: true');// 设置是否允许发送 cookiesheader('Access-Control-Allow-Headers: Content-Type,Content-Length,Accept-Encoding,X-Requested-with,Origin');// 设置允许自定义请求头的字段