这是我参与「AdminJS日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情
前言
最近在将一个微信小程序的项目迁移为 H5 项目,在迁移里面的文件上传功能到 H5 时却遇到了一些问题。本文正是对这个文件上传过程的一些研究、跟踪的分析记录。
上传功能的实现
原来小程序里面的文件上传使用了 wx.uploadFile
,传递文件路径 filePath
的同时还传递了 formData
参数。
比较奇怪的是 formData
传递的是一个对象,和 axios
中文件上传配置项不太一样。
查了微信小程序开发文档解释如下,但是这个说明内容十分简略,还是不明代这个 formData
到底是什么?
我的困惑
- 文档上说的”其他额外的 form data“指的是什么,它在 XMLHttpRequest 中什么样的?
- wx.uploadFile 上传在 H5 中是否有等价的实现方式?
这里的困惑在文章末尾的 【结论】 部分有解答
分析过程
采用小程序开发者工具查看文件上传接口发送的 HTTP 请求参数, 不过我这里最新版本的开发工具使用调试器和真机调试都遇到 bug。
调试器无法查看文件上传接口的参数
使用真机调试,发现文件上传接口看到的参数没有文件数据