微信小程序上传文件小结

2019/6/11 23:58:05 人评论 次浏览 分类:开发资料

前言

后端用的是 Rails ActiveStorage direct_upload 的处理方式, 前端被要求:

MD5-Base64
signed_id

相关知识

因为目前开发任务重且紧,暂时略过此部分,只记录结论要点,后续有时间再补充相关知识

要点小结

3.0 上传文件(后端 Rails: activeStorage)

Step 1: 计算文件MD5-Base64摘要

  1. 小程序中前端无法获取文件的Binary格式 ,因此无法自行或使用第三方库来计算文件的 MD5值,但幸运的是,小程序也提供了API来做这件事,请使用: wx.getFileInfo
  2. 将获得的 MD5 值转为 Base64 格式。可使用此项目中 utils/base64.js 的 encode 方法,该方法适用于转换字符串。也可使用 CryptoJS 库,需要注意的是, CryptoJS.enc.Base64.stringify 需要的参数是 WordArray 格式,不能直接传 String ,要先用 CryptoJS.enc.Utf8.parse 转换一下字符串

Step 2: 上传文件到上一步返回的指定 direct_upload 地址

  1. 小程序前端无法直接获得文件的 Binary 格式传给后端,但可以通过 wx.uploadFile 上传文件,通过此接口发送请求,后端可获取到文件 Binary 格式
  2. 后端提供的上传文件接口需符合 wx.uploadFile 的要求,即 请求方式为 POST , 并指定所需文件 key 名(而不是直接要求把 Binary 文件丢在请求 body 中)
赞赏

相关教程

  • 微信小程序卡券开发(亲测)

    提示:小程序卡券和公众平台调用基本一致,请先查看公众平台卡券文档一、公众帐号/小程序绑定由于微信卡券用的是一套逻辑。所以小程序需要先和公众账号绑定,才能在小程序中调起公众平台卡券登录微信公众平台:https://open.weixin.qq.com/ 进行绑定操作二、公众号卡券添加小……

    2017/6/3 18:45:01

共有访客发表了评论 网友评论

验证码: 看不清楚?