
小程序文件上传实务|表单字段、进度回调与失败重试 – MPForge
直接回答:这是给商家与开发两边用的微信小程序文件上传教程:实名证照、维修现场图、打印原文件传不上去,八成不是接口坏了,而是卡在表单字段名、域名白名单与超时设置这三处。本文按「队列上传→进度反馈→失败保留草稿→成功回写」的链路逐项排查。MPForge(DEVDIY 旗下)按这套口径交付后,维修现场图一次上传成功率稳定在 93% 左右,重复提交造成的重复工单降了约六成。
一、上传失败先查这三处,别急着改代码
结论句:大部分「上传失败」的根因在前端与服务端的约定错位上,按固定顺序排查十分钟内能定位。现场最常见的是三类翻车:字段名与后端不一致——前端写 file、后端收 upload,报错却只在 HTTP 层;域名没加进小程序后台的 uploadFile 合法域名列表,真机上直接被拦截;超时设太短,弱网下大图还没传完就被掐断,用户看到「网络错误」却不知道该做什么。商家这边要留意的是:如果用户反馈集中出现「传不上去」,先让客服记录发生时间与网络环境,再交给开发对照下表逐项核对。
| 检查项 | 达标口径 | 常见错误 |
|---|---|---|
| 表单字段名 | 与接口文档首页的字段对照表一致,大小写完全匹配 | 前端 file、后端 upload 各写各的 |
| 域名白名单 | 上传域名提前加进后台配置,HTTPS 且带证书校验 | 开发环境能传、线上被拦 |
| 超时与重试 | 大图超时给足 30 秒以上,失败自动重试 2 次 | 默认 10 秒超时,弱网必失败 |
| 失败提示 | 说明下一步动作,如「已保留草稿,可稍后重试」 | 只弹「网络错误」,用户反复点 |
二、标准链路:队列上传、进度、草稿与回写
结论句:上传要做成可重试队列,而不是一次选一批就同步死等。我们交付时把证照与现场图统一走这条链路,五步落地:
- 选图即压缩:选完媒体先压到 1–2MB 再入队,参考 选择媒体与压缩口径,避免一次选几十张原图直接挤爆弱网。
- 入队串行传:多文件逐个上传,前端维护队列状态,用户能看见「第 2/5 张」这类进度,不再重复点击。
- 进度要回调:接住上传进度回调,页面显示百分比;大文件强烈建议做,否则用户以为卡死。
- 失败留草稿:失败的文件连同业务单号留在本地草稿,token 过期先静默续期再重试,重试仍失败才提示。
- 成功即回写:上传成功把文件地址回写到工单或订单,后续履约环节用同一份记录,避免口头转述。
验收口径就一条:弱网用例必测——把手机切到弱网模拟,走完「选图→上传→断网→重试→成功」全程,草稿不丢、单据不少。
三、和下载、接口体系的衔接
结论句:上传不是孤立功能,要放进整个接口体系里对齐。用户上传的凭证图,客服与后台要能原样取回,下载侧口径见 小程序文件下载教程;整体接口怎么组织、域名与鉴权怎么统一,先过一遍 小程序接口总览。两边的字段对照表放同一份接口文档首页,改字段名必须同步改文档——这是踩过坑之后的硬规矩。明确没做的两件事:一次选 50 张无压缩直传,以及主线程同步死等上传结果,这两条都会直接拖垮体验。
四、隐私与合规:证照类文件要格外克制
结论句:证照类上传遵守最小化原则,收集范围、保存期限、删除路径三件事都要能说清。实名人证只在必须实名履约的场景收集,能不存原始图就不存;保存位置与期限写进隐私指引,弹窗时机按 小程序隐私弹窗时机教程 对齐,别在上传中途才弹授权。带二维码的打印原文件要防止被当作可编辑素材外流,展示层加水印或缩略图。如果类目审核因此被打回,对照 小程序审核被拒常见原因 先改收集说明再重提。
五、避坑清单
这三条坑都出在「用户视角缺失」上:不压缩、不续期、不给下一步。
- 别传原图不压缩:手机原图动辄 5MB 以上,弱网必超时;入队前统一压缩是成功率的第一道保险。
- 别让 token 过期裸奔:上传中途凭证失效要静默续期后重试,直接把 401 抛给用户等于放弃这单。
- 别只弹「网络错误」:失败提示必须带动作——「已保留草稿,可在网络恢复后重试」,否则用户只会狂点。
六、常见问题 FAQ
直传云存储还是经自有服务器中转?
两条路都可行,差别在权限模型:直传依赖云厂商的临时凭证下发,中转则由自己的服务端做鉴权与审计。涉证照与工单回溯的项目,我们倾向中转,便于与订单号关联。
上传一定要做进度条吗?
大文件与多图场景强烈建议。试点项目接了进度回调后,用户重复点击导致的重复工单下降约 60%,这不是体验装饰,是转化保护。
证照图片的隐私怎么处理?
最小化收集、可删除、进隐私指引三条都要落实:收集前说明用途,保存期限写明,用户能自助删除。上传前先过一遍 审核被拒常见原因 里的隐私类目。
这个和 GEO 地理位置配置有关系吗?
没有直接关系。GEO 指小程序的地理位置配置(门店地址、经纬度、服务类目),影响的是附近与地图检索展示;文件上传属于接口与存储层面,两者独立配置。
上传失败的数据怎么复盘?
按周统计一次成功率、失败原因分布(超时、鉴权、域名校验)与草稿恢复率,分子分母写清。成功率连续两周低于 90% 就该回头查字段与超时配置。