WebApi接收微信小程序上传的图片并保存在服务器指定路径

找了好久都没找到合适的小程序批量上传图片的方法,最终还是只能循环上传,就自己扣了一个:
思路:

  1. 调用小程序上传图片接口后(API参考小程序开发文档,很详细),取到上传图片的集合,循环调用小程序wx.UploadFile方法,依次上传
  2. 后端取到文件之后生成唯一MD5码(相同的文件生成的MD5码是唯一的),然后取前两位后两位创建文件夹,保存图片前判断下图片是否存在。(这样一个完全相同的图片就不会被重复被保存在服务器上了)
  3. 把每次上传后端API接口返回的MD5和文件后缀名,以逗号分隔拼成字符串。所有的文件上传完成之后,请求APi接口,批量保存在数据库TB_File表中;
  4. 以后调用时通过生成MD5的逻辑截取路径取图片,我这里取的前两位后两位

Api代码:

[HttpPost]
        public IHttpActionResult SaveImages2()
        {
            HttpPostedFile file = HttpContext.Current.Request.Files["file"];//接收
            string ext = Path.GetExtension(file.FileName);//文件后缀名
            Stream s = file.InputStream;//文件流
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] retVal = md5.ComputeHash(s);
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < retVal.Length; i++)
            {
                sb.Append(retVal[i].ToString("x2"));
            }
            string md5Res = sb.ToString();//上面的代码是为了生成文件唯一的MD5码
            string path = md5Res .Substring(0, 2);
            string path1=md5Res .Substring(md5Res .Length - 2, 2)//取MD5的前两位和后两位生成文件夹,把图片存在后两位的文件夹内
            string fileSaveLocation = $"E:\\CoolSchoolImages\\{path}\\{path1}\\{md5Res }.jpg";.//文件最终保存路径
            if (!File.Exists(fileSaveLocation))//判断文件是否存在
            {//若不存在
                Directory.CreateDirectory($"E:\\CoolSchoolImages\\{path}\\{path1}");//这个方法创建文件夹的时候如果文件夹存在的话就不会创建了,所以不管文件有没有都调用一下,省得写那么多判断
                file.SaveAs(fileSaveLocation);保存文件
            }
            return Ok(md5Res +ext);返回MD5码,用于后面保存在数据库
        }

小程序部分代码
这里的imgUrls是选择的图片数组,后面把返回的文件名加逗号拼接成了字符串,用于后面保存到数据库
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值