niushop的APP端头像修改问题

发布时间 2023-04-19 16:23:40作者: 79524795

 

这几天修改niusop,遇到niushop APP端头像无法上传问题,以下是解决方案;

niushop版本 4.1.12

后台修改:

 . /app/api/controller/Member.php中


modifyheadimg()方法 修改成:

/**

* 修改会员头像

* @return string

*/

public function modifyheadimg()
{ $token
= $this->checkToken(); if ($token['code'] < 0) return $this->response($token); $headimg = isset($this->params['headimg']) ? $this->params['headimg'] : ''; // var_dump($headimg);die; $member_model = new MemberModel(); // $res = $member_model->editMember(['headimg' => $headimg], [['member_id', '=', $token['data']['member_id'], ['site_id', '=', $this->site_id]]]); $res = $member_model->editimg( $headimg , $token['data']['member_id']); return $this->response($res); }

 

模型路径:app/model/member/Member.php中 记得要清除一下缓存,不然需要重新登录,改头像才能生效

 

 

 

 

新增方法



//修改头像新增代码

public function editimg($img, $member_id)

{

$res= Db::name('member')

->where('member_id', $member_id)

->update(['headimg' => $img]);

Cache::clear(); //清除缓存

if (is_dir('runtime/schema')) { //清除缓存

rmdirs("schema");

}

return $this->success($res);

}

//修改头像新增代码结束

 

 

前端修改思路:

H5的环境下,图片路径直接变Base64编码了,直接拿着可以用,但是在APP端 不会直接变Base64编码,需要转换一下,不然不会上传成功。

具体如下:

路径:@/components/img-cropping/cropping.vue

修改内容400行左右:

(上部分是指,如果在H5环境下 怎么怎么样,下边是非H5环境下怎么怎么样,)

// #ifndef H5

const savedFilePath = r

const path = plus.io.convertLocalFileSystemURL(savedFilePath) //绝对路径

const fileReader = new plus.io.FileReader()

fileReader.readAsDataURL(path)

fileReader.onloadend = (res) => { //读取文件成功完成的回调函数

//console.log(".................",res.target.result) //输出base64内容

this.$emit('upload', {

avatar: this.imgSrc,

path: res.target.result,

index: this.indx,

data: this.rtn,

base64: res.target.result || null

});

}

// #endif