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

PHP单表单多视频上传至Vimeo遇400错误求助

问题分析与修复方案

你遇到的400 Bad Request错误,核心原因大概率是表单缺少文件上传必需的配置,以下是具体修复步骤:

核心修复:为表单添加enctype属性

文件上传(尤其是多文件上传)必须在<form>标签中声明enctype="multipart/form-data",否则服务器无法解析请求中的文件数据,直接返回400错误。修改你的表单标签:

<form method="POST" action="你的处理脚本路径.php" enctype="multipart/form-data">
  <!-- 你的表单内容 -->
</form>

其他需要修正的问题

1. HTML Label绑定错误

第一个标签的for属性值为form__video-upload,但对应input的id是form__trailer,点击标签无法触发文件选择框,需修正为对应input的id:

<label id="trailer" for="form__trailer">Upload trailer video</label>

另外两个标签同理:

  • 第二个标签的for改为form__fullvideo
  • 第三个标签的for改为form__highcam

2. 简化冗余的JavaScript代码

当前JS存在重复的change事件绑定(既给通用类绑定,又给单个id绑定),会导致逻辑重复执行。可以简化为通用处理逻辑:

$('.form__video-upload').on('change', function() {
  const videoLabel = $(this).attr('data-name');
  const defaultText = $(videoLabel).text(); // 保存初始默认文本

  if ($(this).val() !== '') {
    $(videoLabel).text($(this)[0].files[0].name);
  } else {
    $(videoLabel).text(defaultText);
  }
});

删除后续针对form__trailer、form__fullvideo、form__highcam的单独事件绑定即可。

3. PHP代码笔误修正

在高机位视频上传逻辑中,"name" => $$highvideoname多了一个美元符号,会导致变量解析错误,需改为:

"name" => $highvideoname

额外排查点

若添加enctype后仍报错,检查以下配置:

  • 服务器PHP配置中的upload_max_filesize和post_max_size,多个视频总大小可能超过限制,可通过phpinfo();查看当前值并修改php.ini
  • 确保表单的请求方法为POST,GET请求无法处理文件上传

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:05:40