🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 上传图片模块 **apicloud代码部分** ~~~ function UpdateAvatar() { api.actionSheet({ cancleTitle : '取消', buttons : ['拍照', '打开相册'] }, function(ret, err) { if (ret.buttonIndex == 3) { return; } var sourceType = (ret.buttonIndex == 1) ? 'camera' : 'album'; api.getPicture({ sourceType : sourceType, destinationType:'url', allowEdit : true, quality : 70, targetWidth : 100, targetHeight : 100 }, function(ret, err) { if (ret.data) { var img=ret.data; var uid=$api.getStorage('user').id; api.ajax({ url : 'http://www.xxxxcom.cn/index.php?g=Osapp&m=Mine&a=updateAvatar', method : 'post', cache : false, timeout : 30, dataType : 'json', data : { files : {upfile : ret.data}, values:{uid:uid} } }, function(ret, err) { if (ret.msg==1) { $api.attr($api.byId("avatarImg"), 'src', img); var user = $api.getStorage('user'); user.avatar = img; $api.setStorage('user', user); } else { alert('上传失败'); } }); }else{ alert($api.jsonToStr(err)); } }); }); } ~~~ **后台处理数据部分** ~~~ public function updateAvatar(){ $uid=$_POST['uid']; $upload = new \Think\Upload();// 实例化上传类 $upload->maxSize = 3145728 ;// 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload->rootPath = './'.C("UPLOADPATH"); // 设置附件上传根目录 $upload->savePath = './avatar/'; // 设置附件上传(子)目录 $info = $upload->uploadOne($_FILES['upfile']); if(!$info) {// 上传错误提示错误信息 $arr=array('msg'=>0); echo json_encode($arr); }else{// 上传成功 $avatar=$info['savename']; $user_model=M('users'); $ret=$user_model->find($uid); $old_img=$ret['avatar']; $result=$user_model->where(array("id"=>$uid))->save(array("avatar"=>$avatar)); if($result){ // 删除旧的头像 sp_delete_avatar($old_img); $arr=array('msg'=>1); echo json_encode($arr); } } } ~~~