繁体   English   中英

通过表单使用 getUserMedia 发送录制的视频而不使用 FormData

[英]Send recorded video using getUserMedia through form without using FormData

我有一个表单,用户可以使用 getUserMedia 用他们的网络摄像头记录自己,我需要在将文件保存到服务器之前将他们记录的文件发送到另一个页面。

我的问题是我怎样才能做到这一点? 到目前为止,我已经生成了一个视频 blob,如何通过我的表单将其发送到下一页以便我可以访问该文件并将其存储在服务器上?

目前我正在像这样生成 blob,它有效:

let videoURL = window.URL.createObjectURL(blob, {autoRevoke: false});

但我不确定如何在不使用 AJAX 和 FormData 的情况下将此文件作为表单 POST 请求的一部分发送。 甚至有可能还是我错误地处理了这个问题?

从您的 blob 创建一个文件,将其添加到 FileList,然后覆盖表单中输入的文件的 FileList。

<form>
    ...
    <input type="file" name="myvideo" id="fileinput">
    ...
</form>
var input = document.querySelector('#fileinput'); //the file input
var file = new File(blob, 'video_file.mp4'); // create new file
// Need to use a data transfer object to get a new FileList object
var datTran = new ClipboardEvent('').clipboardData || new DataTransfer(); 
datTran.items.add(file);  // Add the file to the DT object
input.files = datTran.files; // overwrite the input file list with ours

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM