Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从HTML表单发布blob的表单输入类型是什么?_Javascript_Forms_File Upload_Html5 Video - Fatal编程技术网

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

Javascript 从HTML表单发布blob的表单输入类型是什么?,javascript,forms,file-upload,html5-video,Javascript,Forms,File Upload,Html5 Video,我想将录制的视频(保存为blob)包含到将发布的表单中 两个问题: 发布blob所需的输入类型是什么 如何将blob分配给该输入类型 我看到的一些建议使用输入类型的文件 示例表格: <form method="POST> <input type="text" class="hidden" name="filename"/> <input type="<UNKNOWN>" class="hidden" name="filedata"/&

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

两个问题:

  • 发布blob所需的输入类型是什么
  • 如何将blob分配给该输入类型 我看到的一些建议使用输入类型的文件

    示例表格:

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

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

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

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

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

    发现了一个类似的问题,但没有得到任何支持:您可能无法使用普通表单,您可能需要将AJAX与
    FormData
    一起使用。我的意思是我可以这样做,但我确实希望使用表单。我的一个解决方案是对我得到的数据进行base64编码,并将其放入一个输入字段。这可能是最好的解决方案。另一个问题中的问题显然是blob没有提供生成blob数据的
    toString()
    方法,因此将其存储到输入字段中只需放置一个通用的
    [object blob]
    var formData = new FormData();
    formData.append("name", blob, filename);
    
    var xhr = new XMLHttpRequest();
    xhr.open('POST', url, true);
    xhr.send(formData);