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

PHP集成Vimeo视频上传:无法获取upload.form字段HTML标记求助

解决PHP应用中Vimeo上传无法获取upload.form的问题

先排查API请求的错误信息

首先得确认API请求是否成功,直接输出完整响应内容,查看是否有错误提示:

$uri = $lib->request('/me/videos', $prms, 'POST');
var_dump($uri); // 输出完整响应,检查是否存在error字段
exit();

如果返回结果里有error字段,说明参数、权限或令牌存在问题,根据错误提示修复即可。

修正参数格式问题

你的代码里有几处参数格式错误,这是无法生成upload.form的常见原因:

  1. size参数不要加引号:
    原代码里"size" => "' . $vsize . '"会把文件大小转为字符串,Vimeo要求传入数字类型的字节数,修正后:
    "upload" => [
        "approach" => "post",
        "size" => $vsize, // 直接传数字,去掉多余引号
        "redirect_url" => "你的合法HTTPS跳转URL"
    ],
    
  2. 布尔值不要用字符串:
    所有true/false参数应使用PHP原生布尔类型,而非字符串"true"/"false",比如:
    "embed" => [
        "volume" => true,
        "logos" => [
            "vimeo" => false,
            "customs" => [
                "active" => false,
                "sticky" => false
            ]
        ],
        // 其他embed参数同理,将带引号的布尔值改为原生布尔值
    ]
    
  3. redirect_url必须是HTTPS:
    Vimeo要求跳转URL必须为HTTPS,且属于你在开发者控制台配置的允许域名范围内。

确认API令牌权限

你的Vimeo访问令牌必须包含**create和upload**权限,否则API不会返回上传表单。前往Vimeo开发者后台检查令牌的权限范围,确保包含public、create、edit、upload这些必要权限。

正确渲染上传表单

upload.form是一个数组,需要自行将其转换为HTML表单,而非直接使用数组。在form-fields.php中可以这样处理:

<?php
session_start();
if (!isset($_SESSION['form'])) {
    die("上传表单未生成,请检查API请求");
}
$form = $_SESSION['form'];
?>
<form action="<?= htmlspecialchars($form['action']) ?>" 
      method="<?= $form['method'] ?>" 
      enctype="<?= $form['enctype'] ?>">
    <!-- 渲染隐藏字段 -->
    <?php foreach ($form['fields'] as $field): ?>
        <?php if ($field['type'] === 'hidden'): ?>
            <input type="hidden" 
                   name="<?= htmlspecialchars($field['name']) ?>" 
                   value="<?= htmlspecialchars($field['value']) ?>">
        <?php endif; ?>
    <?php endforeach; ?>
    <!-- 文件上传字段 -->
    <input type="file" name="file" required>
    <button type="submit">上传视频到Vimeo</button>
</form>

其他注意事项

  • 确保$vsize是视频文件的实际字节大小,可通过filesize($videoFilePath)获取。
  • 避免在name、description参数中直接拼接字符串,防止特殊字符导致JSON格式错误,建议先对变量进行转义或使用SDK的参数处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:21:02