小程序上传图像失败

小程序端

javascript 复制代码
onChooseAvatar(e) {
    wx.showLoading({ title: '加载中' });
        const that = this; 

        const fs = wx.getFileSystemManager();
        fs.readFile({
          filePath: e.detail.avatarUrl,
          encoding: 'base64',
          success:(res) =>{
            wx.request({
              url: getApp().globalData.host + "User/UploadBase64",
              method: 'POST',
              //header: { 'content-type': 'application/json' },
              data: {
                data: res.data
              },
              success:(r) =>{ 
                this.setData({ avatarUrl: getApp().globalData.url + r.data })
                wx.showToast({ title: '上传成功', icon: 'none' })
             },
              fail(e) { console.error('base64 upload fail', e); }
            });
          },
          fail(e) { console.error('readFile fail', e); }
        });
  }

服务器端

cs 复制代码
[AllowAnonymous]
[HttpPost, Route("UploadBase64")]
public string UploadBase64(string data)
{
    try
    {
        if (string.IsNullOrEmpty(data)) throw new Exception("no data");
        var bytes = Convert.FromBase64String(data);
        string folder = "/Uploads/image";
        string save = Server.MapPath(folder);
        if (!Directory.Exists(save)) Directory.CreateDirectory(save);
        string file = Guid.NewGuid().ToString() + ".jpg";
        string full = Path.Combine(save, file);
        System.IO.File.WriteAllBytes(full, bytes);
        return Path.Combine(folder, file).Replace('\\', '/');
    }
    catch (Exception ex)
    {
        return ex.Message;
    }
}
相关推荐
yswenli4 小时前
基于C#开发网站视频嗅探下载工具——BrowserVideoGrabber
c#·videodownload·webvideodownload·videograbber
Lost of 程序猿4 小时前
M2 实战:询价与采购订单聚合落地——跨聚合一致性、领域事件与 Outbox
开发语言·c#·asp.net·.net
Polevne6 小时前
C# GRPC 一元与双向流
linux·算法·c#
QQ_21696290967 小时前
基于微服务架构的店铺管理系统的设计与实现
大数据·spring boot·后端·spring·微服务·小程序·架构
EatFan20 小时前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app
XiaoZhenHua981 天前
C#工业机器视觉Recipe配方系统设计:多型号、多相机、多工位参数如何统一管理
c#·软件架构·机器视觉·工业自动化·工业软件·recipe
fujisheng6611 天前
FUI 导航实践:拆开 Layer、History、Coverage 与 Cache 的组合语义
c#·unity3d
淡海水1 天前
10-05-高级-模式匹配-CSharp如何改变与数据结构的交互方式
数据结构·算法·c#·模式匹配
XiaoZhenHua981 天前
C# WinForms + 西门子S7 + SQLite + EPPlus生产数据采集系统架构设计
系统架构·sqlite·c#
Lost of 程序猿1 天前
船岸数据同步链路实战:SendFlag、单调版本号与断网三天后的续传
后端·c#·asp.net