uni-app修改头像并上传头像资源到服务器

比眉伴天荒 2022-01-23 23:25 893阅读 0赞

前端小白的uni-app艰难学习之路

功能

要实现从本地相册或拍照获取图片,然后传给后台,后台返回保存后的图片地址

实现

这里首先我们要了解,通过uni-app提供的chooseImage接口返回的是图片的临时路径,除了你自己的项目里,其他任何地方都没办法查看图片的,这显然是不行的,我的解决办法是通过chooseImage接口获取临时路径,然后用了插件把图片转成base64格式,然后传给后台,后台再把base64格式的图片转成路径并保存
这是用到的插件地址:https://ext.dcloud.net.cn/plugin?id=123
在用插件之前,也曾试过别的办法,最后发现插件是最好用的
先看代码:

  1. getPhoto: function () {
  2. let id = uni.getStorageSync('user').id
  3. uni.chooseImage({
  4. count: 1,
  5. sourceType: ['album'],
  6. success:(res) => {
  7. pathToBase64(res.tempFilePaths[0])
  8. .then(base64 => {
  9. // console.log(base64)
  10. uni.request({
  11. url: urls.HTTP + '/user/uploadheadimg',
  12. method: 'POST',
  13. name: 'file',
  14. data: {
  15. uid: id,
  16. image: base64
  17. },
  18. success: (res) => {
  19. console.log('上传头像', res)
  20. if (res.data.code === 0) {
  21. this.$store.dispatch('userInfo', res.data.user)
  22. uni.setStorageSync('user', res.data.user)
  23. } else {
  24. uni.showToast({
  25. title: res.data.error,
  26. icon: 'none'
  27. })
  28. }
  29. }
  30. })
  31. })
  32. }
  33. })
  34. },

很简单的功能,希望对大家有帮助

发表评论

表情:
评论列表 (有 0 条评论,893人围观)

还没有评论,来说两句吧...

相关阅读

    相关 uniapp修改头像

    以下将是 uniapp 借用七牛云修改头像的代码,但是其他也可借鉴,原理相同,局部更改即可。 以下代码用到的地址皆为七牛云的地址,上传图片很方便,会给你返回图片地址,个人用

    相关 vue裁剪头像

    之前,在用vue写一个上传头像的模块,里面需要对头像进行拖动裁剪设置,可是后台却跟我说他只要类似于input上传图片的内容。前端是没有办法操作本地图片的,一般也只能是传图片+裁