热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【微信小程序】上传头像

效果代码editInfo.jspageseditInfoeditInfo.jsPage({***页面的初始数据*data:{dataList:[]},***获得图片本地路径*cho




效果


代码


editInfo.js

// pages/editInfo/editInfo.js
Page({
/**
* 页面的初始数据
*/
data: {
dataList: []
},
/**
* 获得图片本地路径
*/
chooseWxImage: function () {
const that = this;
wx.chooseImage({
// 最多可以选择的图片张数
count: 1,
// 所选的图片的尺寸
sizeType: ['original', 'compressed'],
// 选择图片的来源
sourceType: ['album', 'camera'],
success: function (res) {
wx.showToast({
title: '正在上传...',
icon: 'loading',
mask: true,
duration: 10000
});
console.log(res);
console.log(res.tempFilePaths[0]);
that.upImgs(res.tempFilePaths[0], 0); // 调用上传方法
},
fail: function (res) {
console.log('fail', res);
},
complete: function (res) {
}
});
},
/**
* 上传服务器
* @param {*} imgurl
* @param {*} index
*/
upImgs: function (imgurl, index) {
const that = this;
wx.uploadFile({
url: `http://api`,
// 小程序本地的路径
filePath: imgurl,
// 后台获取我们图片的key
name: 'file',
header: {
'content-type': 'multipart/form-data'
},
// 额外的参数formData
formData: {},
success: function (res) {
const datas = JSON.parse(res.data);
console.log(datas);
if (datas.code === 1) {
wx.setStorageSync('PROFILEURL', 'http://' + datas.data);
const profileUrl = wx.getStorageSync('PROFILEURL');
that.setData({
profileUrl: profileUrl
});
wx.showToast({
title: '头像上传成功',
icon: 'success',
duration: 2000,
mask: true,
success: res => {}
});
console.log('success', res); // 接口返回网络路径
} else {
wx.showModal({
title: '错误提示',
content: datas.message,
showCancel: false,
success: function (res) { }
});
console.log('fail', datas.message);
}
},
fail: function (res) {
console.log('fail', res);
wx.hideToast();
wx.showModal({
title: '错误提示',
content: '上传图片失败',
showCancel: false,
success: function (res) { }
});
}
});
},
/**
* 生命周期函数--监听页面加载
*/
onl oad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
});

profile.js

// pages/profile/profile.js
// 获取本地缓存
const USERID = wx.getStorageSync('USERID');
const ROLEID = wx.getStorageSync('ROLEID');
const PROFILEURL = wx.getStorageSync('PROFILEURL');
const NICKNAME = wx.getStorageSync('NICKNAME');
const POSTNUM = wx.getStorageSync('POSTNUM');
const FANSNUM = wx.getStorageSync('FANSNUM');
const INTRODUCE = wx.getStorageSync('INTRODUCE');
const TAGLIST = wx.getStorageSync('TAGLIST');
Page({
/**
* 页面的初始数据
*/
data: {
UserInfo: [{
profileUrl: PROFILEURL,
nickname: NICKNAME,
postNum: POSTNUM,
fansNum: FANSNUM,
introduce: INTRODUCE,
tagList: TAGLIST
}],
pageNum: 1,
userPageSize: 4,
personalId: USERID,
userId: USERID,
onRefresh: false,
roleId: ROLEID
},
/**
* 刷新普通用户信息
* @param {*} event
*/
updateUserInfo: function () {
// 获取本地缓存
const PROFILEURL = wx.getStorageSync('PROFILEURL');
const NICKNAME = wx.getStorageSync('NICKNAME');
const POSTNUM = wx.getStorageSync('POSTNUM');
const FANSNUM = wx.getStorageSync('FANSNUM');
const INTRODUCE = wx.getStorageSync('INTRODUCE');
const TAGLIST = wx.getStorageSync('TAGLIST');
// 更新缓存
const that = this;
for (let i = 0; i // console.log(that.data.UserInfo.length);
const profileUrl = 'UserInfo[' + i + '].profileUrl';
const nickname = 'UserInfo[' + i + '].nickname';
const postNum = 'UserInfo[' + i + '].postNum';
const fansNum = 'UserInfo[' + i + '].fansNum';
const introduce = 'UserInfo[' + i + '].introduce';
const tagList = 'UserInfo[' + i + '].tagList';
that.setData({
[profileUrl]: PROFILEURL,
[nickname]: NICKNAME,
[postNum]: POSTNUM,
[fansNum]: FANSNUM,
[introduce]: INTRODUCE,
[tagList]: TAGLIST
});
}
// console.log(that.data.UserInfo[0].profileUrl);
},
/**
* 跳转编辑资料界面
*/
gotoEditInfo: function (event) {
// 当前要跳转到另一个界面,但是会保留现有界面
wx.navigateTo({
url: `../editInfo/editInfo?${this.data.dataList}`
});
},
/**
* 生命周期函数--监听页面加载
*/
onl oad: function (options) {
const that = this;
if (USERID === 0) {
wx.redirectTo({ url: 'pages/login/login' });
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
// 每次回到这个页面都要更新缓存
const that = this;
if (ROLEID === 1) {
that.updateUserInfo();
} else {
wx.showToast({
title: '用户未登录!', // 提示的内容,
icon: 'none', // 图标,
duration: 2000, // 延迟时间,
mask: true, // 显示透明蒙层,防止触摸穿透,
success: res => {}
});
console.log('用户未登录!');
}
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
});


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 网卡工作原理及网络知识分享
    本文介绍了网卡的工作原理,包括CSMA/CD、ARP欺骗等网络知识。网卡是负责整台计算机的网络通信,没有它,计算机将成为信息孤岛。文章通过一个对话的形式,生动形象地讲述了网卡的工作原理,并介绍了集线器Hub时代的网络构成。对于想学习网络知识的读者来说,本文是一篇不错的参考资料。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
w康d
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有