Niushop APP端头像上传问题

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

niushop版本 4.1.12

后台修改:

1. /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 MP-ALIPAY
			uni.canvasToTempFilePath(
				{
					x: x,
					y: y,
					width: width,
					height: height,
					destWidth: expWidth,
					destHeight: expHeight,
					canvasId: 'avatar-canvas',
					fileType: this.fType,
					quality: this.qlty,
					success: r => {
							console.log(",,,1111111111,,,,",JSON.stringify(r));
						r = r.tempFilePath;
						// #ifdef H5
						this.btop(r).then(r => {
							console.log(",,,2222222,,,,",this.base64);
							this.$emit('upload', {
								avatar: this.imgSrc,
								path: r,
								index: this.indx,
								data: this.rtn,
								base64: this.base64 || null
							});
							return;
						});
						// #endif
						
						// #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
					},

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值