当前位置:   article > 正文

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

微信小程序上传图片后端接收

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

本人自己开发的网址:

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

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

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

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

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

  1. wx.chooseImage({
  2. success: function(res) {
  3. var tempFilePaths = res.tempFilePaths
  4. wx.uploadFile({
  5. url: 'https://。。。。/upload', //仅为示例,非真实的接口地址
  6. filePath: tempFilePaths[0],
  7. name: 'file',
  8. formData:{
  9. 'user': 'test'
  10. },
  11. success: function(res){
  12. var data = res.data
  13. //do something
  14. }
  15. })
  16. }
  17. })

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

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

  1. public IHttpActionResult Post()
  2. {
  3. HttpFileCollection files = HttpContext.Current.Request.Files;
  4. foreach (string key in files.AllKeys)
  5. {
  6. HttpPostedFile file = files[key];//file.ContentLength文件长度
  7. if (string.IsNullOrEmpty(file.FileName) == false)
  8. file.SaveAs(HttpContext.Current.Server.MapPath("~/imgcoll/") + file.FileName);
  9. }
  10. return Ok("success2");
  11. }

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

更新于2023年6月29日

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

  1. [HttpPost]
  2. public CommonResult AcceptFincialImage()
  3. {
  4. var files = HttpContext.Request.Form.Files;
  5. string fileFold = _bll.AccessInageFold();
  6. foreach (var item in files)
  7. {
  8. fileFold += item.FileName;
  9. using (var stream = System.IO.File.Create(fileFold))
  10. {
  11. item.CopyToAsync(stream);
  12. }
  13. }
  14. return new CommonResult();
  15. }

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/325957
推荐阅读
相关标签
  

闽ICP备14008679号