从 HTML 表单发布 blob 的表单输入类型是什么?

What is the form input type for posting blob from an HTML Form?

我想将录制的视频(保存为 blob)添加到将要 posted 的表单中。

两个问题:

  1. post blob 需要什么输入类型?
  2. 如何将 blob 分配给该输入类型?

我看到的一些建议使用输入文件类型。

示例表格:

<form method="POST>  
    <input type="text" class="hidden" name="filename"/>
    <input type="<UNKNOWN>" class="hidden" name="filedata"/>
    <input type="submit" />
</form>

我假设我会做类似

的事情
$("[name=filename]").val(myBlob)

我认为将 blob 附加到表单的唯一方法是使用 FormData() 对象。

var formData = new FormData();
formData.append("name", blob, filename);

然后使用 XMLHttpRequest 发送表单,例如:

var xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.send(formData);

因此,如果您需要将此 blob 与其他表单信息一起发送,您可以将普通表单数据附加到您的 FormData 对象并发送整个信息。或者可能想出一些其他解决方案,例如仅发送 blob 并让服务器 return 与上传相关联的密钥,然后将其插入到表单的隐藏元素中,因此当表单正常提交时,您的服务器可以将该数据附加到之前上传的 blob。