You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React上传文件到Express.js转码接口返回500错误排查求助

问题原因及解决方案

核心错误:前后端上传文件的字段名不匹配

你前端代码中通过FormData上传文件时,使用的字段名是file:

data.append('file', file)

但后端接口中读取文件时,使用的字段名是video:

let video = req.files.video;

字段名不匹配导致video变量为undefined,后续执行video.mv(oldVideoPath)时触发未定义方法的异常,最终返回500错误。

修复方案(二选一即可):

  • 前端修改:将data.append('file', file)改为data.append('video', file)
  • 后端修改:将let video = req.files.video改为let video = req.files.file

其他可能引发错误的潜在问题

  • 异步操作顺序错误:video.mv()是异步方法,你当前代码没有等待文件写入完成就直接调用ffmpeg读取文件,可能出现文件不存在的错误。建议将后续逻辑放在mv方法的回调函数中,或者如果该方法支持Promise则使用await等待执行完成。
  • 目录不存在:需要确认./public/uploads和./public/converted两个目录已提前创建,否则写入文件时会触发IO异常。
  • 文件大小限制:确认你使用的文件上传中间件(如express-fileupload)配置的最大文件大小限制,大于你上传的视频文件体积。

内容的提问来源于stack exchange,提问作者alekszych

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:48:03