头像上传笔记

思路:后台获取base64数据,存入文件夹,修改用户头像对应的路径。

1.上传图片
input的onchange事件
accept 上传类型,此处为图片

<input type='file'  onchange = 'upload' id='uploadInput' accept="image/png, image/jpeg, image/gif, image/jpg">
  // 1.获取input
  let file = document.getElementById('uploadInput');
  // 2.new一个FileReader
  let reader = new FileReader();
  //使用该对象读取file文件
  reader.readAsDataURL(file);
  //读取文件成功后执行的方法函数
  reader.onload=(e)=>{
  //读取成功后返回的一个参数e
  //e.target.result即获取图片的base64编码
  // src进行赋值e.target.result;
}

2.将图片写入文件夹中

// 后台拿到数据avatar,去掉前缀,取得base64;
 const base64Data = avatar.replace(/^data:image\/\w+;base64,/, "");
 // 将base64转化为buffer
const dataBuffer = new Buffer(base64Data, 'base64');
 // 给文件命名
 const filename = "avatar"+ new Date().getTime()+".png";
 // 写入文件
 fs.writeFile("../public/static/images/"+filename, dataBuffer, function(err) {
      if(!err){
            // 将路径写到userInfo中
            const data = result.find(i=>i.id == id);
            if(data){
                data.file = "/static/images/"+filename;
                fs.writeFile('./db/usersInfo.json',JSON.stringify(usersInfo),(err)=>{
                	// 操作
                	}
                }
            }else{
                console.log(err);
            }
        });

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值