微信小程序文件上传wx.uploadFile采坑记录

lxf2023-03-17 07:22:02

这是我参与「AdminJS日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情

前言

最近在将一个微信小程序的项目迁移为 H5 项目,在迁移里面的文件上传功能到 H5 时却遇到了一些问题。本文正是对这个文件上传过程的一些研究、跟踪的分析记录。

上传功能的实现

原来小程序里面的文件上传使用了 wx.uploadFile,传递文件路径 filePath 的同时还传递了 formData 参数。

微信小程序文件上传wx.uploadFile采坑记录

比较奇怪的是 formData 传递的是一个对象,和 axios 中文件上传配置项不太一样。

查了微信小程序开发文档解释如下,但是这个说明内容十分简略,还是不明代这个 formData 到底是什么?

微信小程序文件上传wx.uploadFile采坑记录

我的困惑

  1. 文档上说的”其他额外的 form data“指的是什么,它在 XMLHttpRequest 中什么样的?
  2. wx.uploadFile 上传在 H5 中是否有等价的实现方式

这里的困惑在文章末尾的 【结论】 部分有解答

分析过程

采用小程序开发者工具查看文件上传接口发送的 HTTP 请求参数, 不过我这里最新版本的开发工具使用调试器和真机调试都遇到 bug。

调试器无法查看文件上传接口的参数

微信小程序文件上传wx.uploadFile采坑记录

使用真机调试,发现文件上传接口看到的参数没有文件数据