aliyunupload图片上传_js使用阿里云oss上传图片

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');// 设置允许自定义请求头的字段


版权声明:本文为weixin_29790897原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。