用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 实战教程 查看内容

微信小程序上传文件小结

Rolan 2019-6-11 00:09

前言后端用的是 Rails ActiveStorage direct_upload的处理方式, 前端被要求:MD5-Base64 signed_id 相关知识因为目前开发任务重且紧,暂时略过此部分,只记录结论要点,后续有时间再补充相关知识要点小结3.0 上传文 ...

前言

后端用的是 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 中)
鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏
原作者: bolelee 来自: segmentfault