niushop的APP端头像修改问题
这几天修改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