<view class="item" style="align-items: center;">
<view style="width: 100rpx;">
头像
</view>
<view style="flex: 1; display: flex; justify-content: space-between; align-items: center; padding-right: 45rpx; ">
<text></text>
<image class="img" src="{{baseURL+imgUrl}}" />
<button class="touming_btn" open-type="chooseAvatar" bindchooseavatar="onChooseImage"></button>
</view>
</view>
这个按钮实际上是透明的。
如果上传成功图片。就替换imgUrl,
onChooseImage: function (e) {
var this_ = this;
wx.showLoading({
title: '上传中',
mask: true
})
var header = {
"Content-Type": "multipart/form-data"
};
var openid = this.data.openid;
var formData = {
'openid': openid
};
var tempFilePath = e.detail.avatarUrl;
uploadFile2(baseURL + "/api/xcx/user/uploadimage", tempFilePath, "image", header, formData).then(res => {
wx.hideLoading()
var result = JSON.parse(res.data); //
console.log(result.url);
this_.setData({
imgUrl: result.url
});
})
},
/**
* 更新 用户头像。 接受的有openid
* /api/xcx/user/uploadimage
* @RequestParam("file") MultipartFile file,
*
*/
@ResponseBody
@RequestMapping("/uploadimage")
public JSONObject uploadimage( @RequestParam("openid") String openid, HttpServletRequest request)throws Exception {
JSONObject result = new JSONObject();
//获取文件需要上传到的路径
String webPath=request.getServletContext().getRealPath("");
System.out.println("openid"+openid);//这里输出是 openid[object Undefined]
XcxUser xcxUser = xcxUserService.findByOpenid(openid);
if(xcxUser==null){
}else{
//判断 路径 有没有包含 xcx_upload 如果有就删除头像吧。
if(xcxUser.getHeadimgurl().contains("upload")){
FileUtil.deleteFile(webPath+xcxUser.getHeadimgurl());
}
}
String filePath= "/static/xcx_upload/xcx_user_head/"+ DateUtil.formatDate(new Date(), "yyyyMMdd")+"/";
FileUtil.makeDirs(webPath+filePath);
request.setCharacterEncoding("utf-8"); //设置编码
try {
StandardMultipartHttpServletRequest req = (StandardMultipartHttpServletRequest) request;
Iterator<String> iterator = req.getFileNames();
while (iterator.hasNext()) {
HashMap<String, Object> res = new HashMap<String, Object>();
MultipartFile file = req.getFile(iterator.next());
// 获取文件名
String fileNames = file.getOriginalFilename();
int split = fileNames.lastIndexOf(".");
//获取上传文件的后缀
String extName = fileNames.substring(split + 1, fileNames.length());
//申明UUID
String uuid = UUID.randomUUID().toString().replace("-", "");
//组成新的图片名称
String newName = uuid + "." + extName;
System.out.println(newName);
String destPath = webPath+filePath + newName;
//真正写到磁盘上
File file1 = new File(destPath);
OutputStream out = new FileOutputStream(file1);
out.write(file.getBytes());
res.put("url", destPath);
result.put("url", filePath+ newName);
//更新头像,
xcxUser.setHeadimgurl(filePath+ newName);
xcxUserService.updateById(xcxUser);
out.close();
}
} catch (Exception e) {
}
return result;
}

<view class="item">
<view style="width: 100rpx;">
昵称
</view>
<view style="flex: 1; display: flex; justify-content: space-between; ">
<text></text>
<input style="width: 200rpx;" bindinput="nameInput" placeholder="请输入昵称" type="nickname" />
</view>
</view>
nameInput(e) {
console.log(e);
this.setData({
name: e.detail.value,
})
},
点击昵称后,可以触发nameinput 事件。 也可以手动输入一个新昵称。
<view style="flex: 1;"> <button open-type="getPhoneNumber" bindgetphonenumber="click_get_phone" class="btn2">确认授权</button></view>
click_get_phone(e) {
//获取手机号
console.log(this.properties.state);
console.log(e);
console.log(e.detail.errMsg); //getPhoneNumber:ok getPhoneNumber:fail user deny
var msg = e.detail.errMsg;
var this_ = this;
if (msg.indexOf("ok") != -1) {
console.log(e.detail.iv);
console.log(e.detail.encryptedData);
console.log(app.globalData.session_key);
var obj = {};
obj.encryptedData =e.detail.encryptedData;
obj.session_key = app.globalData.session_key;
obj.iv=e.detail.iv;
get_phone(obj).then(res => {
console.log(res.data.phoneNumber);
//更新用户的手机号。
var obj={};
obj.id = this_.data.xcxUser.id
obj.phone=res.data.phoneNumber
xcx_user_update(obj).then(res=>{
});
// this.setData({
// click_phone: res.data.phoneNumber
// })
})
} else {}
},站长微信:xiaomao0055
站长QQ:14496453