function ossUpPic($fFiles,$n,$ossClient,$bucketName,$web,$isThumb=0){ $fType=$fFiles['type']; $back=array( 'code'=>0, 'msg'=>'', ); if(!in_array($fType, C('oss_exts'))){ $back['msg']='文件格式不正确'; return $back; exit; } $fSize=$fFiles['size']; if($fSize>C('oss_maxSize')){ $back['msg']='文件超过了1M'; return $back; exit; } $fname=$fFiles['name']; $ext=substr($fname,stripos($fname,'.')); $fup_n=$fFiles['tmp_name']; $file_n=time().'_'.rand(100,999); $object = $n."/".$file_n.$ext;//目标文件名 if (is_null($ossClient)) exit(1); $ossClient->uploadFile($bucketName, $object, $fup_n); if($isThumb==1){ // 图片缩放,参考https://help.aliyun.com/document_detail/44688.html?spm=5176.doc32174.6.481.RScf0S $back['thumb']= $web.$object."?x-oss-process=image/resize,h_300,w_300"; } $back['code']=1; $back['msg']=$web.$object; return $back; exit; }第四步:控制器里的操作方法里面,例如控制器是Index, public function upPic(){ //oss上传 $bucketName = C('OSS_TEST_BUCKET'); $ossClient = new /Org/OSS/OssClient(C('OSS_ACCESS_ID'), C('OSS_ACCESS_KEY'), C('OSS_ENDPOINT'), false); $web=C('OSS_WEB_SITE'); //图片 $fFiles=$_FILES['pic_1']; $rs=ossUpPic($fFiles,'s',$ossClient,$bucketName,$web,0); if($rs['code']==1){ //图片 $img = $rs['msg']; //如返回里面有缩略图: $thumb=$rs['thumb']; }else{ $this->error('图片有误:'.$rs['msg']); return; } }第五步:调用,文件域名pic_1,要与第四步里面的$_FILES['pic_1']一致。action地址为控制器的操作地址,例如:/index.php/Home/Index/upPic <meta charset="UTF-8"/> <form action="/index.php/Home/Index/upPic" enctype="multipart/form-data" method="post"> <input type="file" name="pic_1" value="" /> <input type="submit" value="上传"/> </form>复制代码演示效果和下载地址:http://www.erdangjiade.com/js/1021.html新闻热点
疑难解答
图片精选