微信小程序上传图片,web api后台接收(完全版)

插播一条广告:软件设计师考试系统:

本人自己开发的网址:

http://94.191.14.138:8025/Html/Customer/Main.html#/Index

今天花了一天时间,研究了微信小程序的图片上传功能。总体思路为:小程序读取手机相册或者摄像头拍照,然后将图片post到web api。api接收图片信息,存到硬盘,然后将路径存储在数据库中。

问题:1、首先要解决跨域问题,这个在mvc5的web api的默认配置中修改即可。

          2、post提交问题,在这里我遇到了大坑,往上研究了一大圈,各种五谷杂粮的代码,基本上都是浪费流量。我的解决方案一会发出。

解决了上面两个问题,直接上代码:

wx.chooseImage({
  success: function(res) {
    var tempFilePaths = res.tempFilePaths
    wx.uploadFile({
      url: 'https://。。。。/upload', //仅为示例,非真实的接口地址
      filePath: tempFilePaths[0],
      name: 'file',
      formData:{
        'user': 'test'
      },
      success: function(res){
        var data = res.data
        //do something
      }
    })
  }
})

使用上面的代码就可以完成图片的上传,url修改为你的api地址。

然后是web api的代码,奉献核心代码:

 public IHttpActionResult Post()
        {
            HttpFileCollection files = HttpContext.Current.Request.Files;

            foreach (string key in files.AllKeys)
            {
                HttpPostedFile file = files[key];//file.ContentLength文件长度
                if (string.IsNullOrEmpty(file.FileName) == false)
                    file.SaveAs(HttpContext.Current.Server.MapPath("~/imgcoll/") + file.FileName);
            }

            return Ok("success2");
        }

好了,这是我花了一天总结的,看起来很简单,实际上真的很费功夫,希望和我一样被困扰的同仁能够顺利的完成。

更新于2023年6月29日

上面的接收方式是.net framework的,现在我们都用.net core\net5\6\7;接收方式也改变了,如下:

        [HttpPost]
        public CommonResult AcceptFincialImage()
        {
            var files = HttpContext.Request.Form.Files;
            string fileFold = _bll.AccessInageFold();
            foreach (var item in files)
            {
                fileFold += item.FileName;
                using (var stream = System.IO.File.Create(fileFold))
                {
                    item.CopyToAsync(stream);
                } 
            }
            return new CommonResult();
        }

如有不了解,可以加我微信:1057359832

  • 18
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
微信小程序上传图片功能是指在微信小程序中,用户可以选择图片文件并将其上传到后台服务器或云存储等位置。该功能在许多小程序中被广泛使用,例如社交应用、电商应用等。下面是实现微信小程序上传图片功能的一种方式: 首先,需要在小程序的页面中添加一个按钮,用于触发选择图片的操作。用户点击按钮后,可以调用微信小程序提供的wx.chooseImage方法,打开系统相册或拍照功能,供用户选择图片文件。选择完毕后,可以获取到一个临时文件路径。 然后,在选择图片成功的回调函数中,可以调用微信小程序提供的wx.uploadFile方法,将选择的图片文件上传到后台服务器或云存储。在uploadFile方法中,需要指定上传的URL地址、文件路径、文件名等参数。上传过程中,可以通过监听上传进度的回调函数,实时获取上传进度,并在页面中展示上传进度条。 接着,后台服务器或云存储接收到上传的图片文件后,可以进行相关的处理,例如存储到数据库或云存储中,并返回处理结果给小程序小程序可以在上传成功的回调函数中处理服务器返回的结果,例如展示上传成功的提示信息、刷新页面等。 总之,微信小程序上传图片功能可以通过调用微信小程序提供的API,结合后台服务器或云存储的处理逻辑实现。通过选择图片、上传文件和处理结果等步骤,用户可以方便地上传图片并在小程序中进行相关操作。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值