废鸡程序员 2023-09-15 20:04 采纳率: 86%
浏览 7
已结题

wx.uploadFile 修改昵称和头像,不传头像会失败?

wx.uploadFile 修改昵称和头像,不传图会失败?


saveInfo() {
                var that = this;
                console.log(that.avatarUrl, that.name)
                wx.uploadFile({
                    url: "https://rongchuang.newreadingtech.com/api/v1/saveUserInfo",
                    filePath: that.avatarUrl,
                    header: {
                        "Authorization": 'bearer ' + uni.getStorageSync('token')
                    },
                    name: "headimgurl",
                    formData: {
                        "nickname": that.name
                    },
                    success: (res) => {
                        const data = JSON.parse(res.data);
                        console.log('data :>> ', data);
                        uni.showToast({
                            url: '保存成功',
                            mask: true,
                            complete() {
                                uni.redirectTo({
                                    url: '/pages/mine/mine'
                                })
                            }
                        })
                    },
                    fail: (res) => {
                        console.log("失败")
                    }
                });


  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-15 20:09
    关注

    引用 皆我百晓生 小程序回复内容作答:
    根据你提供的代码,你使用了微信小程序的 wx.uploadFile 方法来上传用户的头像和修改昵称。在这段代码中,你指定了文件路径 that.avatarUrl 和请求参数 that.name,并将其作为上传的文件和表单数据发送到服务器。

    根据微信小程序的官方文档,wx.uploadFile 方法的 filePath 参数表示要上传的文件的路径。而你在代码中将 that.avatarUrl 赋值给 filePath,这意味着你将用户选择的图像文件路径传递给了 wx.uploadFile 方法。

    如果你不传递头像文件,即 that.avatarUrl 为 undefined 或者空字符串,wx.uploadFile 方法会返回失败。这是因为 wx.uploadFile 要求必须传递一个有效的文件路径来上传文件。

    如果你要实现不传递头像的功能,并且在不上传头像的情况下也能成功保存昵称,你可以在代码中进行判断和处理。例如,可以在 wx.uploadFile 方法之前添加一个 if 条件判断,检查 that.avatarUrl 是否为空。如果为空,则只发送昵称修改请求;否则,同时发送昵称和头像的请求。

    以下是一种可能的修改方案供参考:

    saveInfo() {
        var that = this;
        console.log(that.avatarUrl, that.name)
        
        if (that.avatarUrl) {
            // 上传头像和修改昵称
            wx.uploadFile({
                url: "https://rongchuang.newreadingtech.com/api/v1/saveUserInfo",
                filePath: that.avatarUrl,
                header: {
                    "Authorization": 'bearer ' + uni.getStorageSync('token')
                },
                name: "headimgurl",
                formData: {
                    "nickname": that.name
                },
                success: (res) => {
                    const data = JSON.parse(res.data);
                    console.log('data :>> ', data);
                    uni.showToast({
                        url: '保存成功',
                        mask: true,
                        complete() {
                            uni.redirectTo({
                                url: '/pages/mine/mine'
                            })
                        }
                    })
                },
                fail: (res) => {
                    console.log("失败")
                }
            });
        } else {
            // 只修改昵称
            wx.request({
                url: "https://rongchuang.newreadingtech.com/api/v1/saveUserInfo",
                method: "POST",
                header: {
                    "Authorization": 'bearer ' + uni.getStorageSync('token')
                },
                data: {
                    "nickname": that.name
                },
                success: (res) => {
                    const data = res.data;
                    console.log('data :>> ', data);
                    uni.showToast({
                        url: '保存成功',
                        mask: true,
                        complete() {
                            uni.redirectTo({
                                url: '/pages/mine/mine'
                            })
                        }
                    })
                },
                fail: (res) => {
                    console.log("失败")
                }
            });
        }
    }
    

    注意,这只是一种修改方案,并没有进行完整的错误处理。你可以根据你的实际需求进一步修改和完善这段代码。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月26日
  • 已采纳回答 9月18日
  • 创建了问题 9月15日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据