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



我想将录制的视频(保存为blob)包含到将发布的表单中。

两个问题:

  1. 发布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,让服务器返回一个与上传相关的密钥,然后将其插入表单的隐藏元素中,这样,当表单正常提交时,服务器可以将该数据附加到之前上传的blob。

最新更新