2017-10-09 860 views
0

我有一个网页,用户使用html的“input type = file”标签上传视频文件,我在JavaScript函数变量中捕获上传的视频文件, blob网址。 “blob:https://www.myownsite.com:8080/2e8cfd32-abf2-4db3-b396-91f76cc3b40c”。我无法将此Blob网址保存在我的系统中。无法保存/下载浏览器blob数据对象

HTML代码:

<input type="file" name="video_file_name" accept="video/*"> 
<input type="submit" value="Upload Video" id="customVideoSubmit"> 
<button onClick="postVideo();" id="customVideoSubmit" aria- hidden="true">Upload Video</button> 

JavaScript代码:

function postVideo(){ 
    var blobURL = document.querySelector('video').src; 
} 

变量blobURL包含以下BLOB URL,它正确地播放视频,如果我把这个这个浏览器的一个单独的选项卡上。

blob:https://www.myownsite.com:8080/2e8cfd32-abf2-4db3-b396-91f76cc3b40c 

如何在我的系统中保存这个blob视频文件。我已经尝试了一些JavaScript方法,并且在我的Perl代码中使用了后端方法,如

decode_base64($cgi->{blobURL}) ; 

虽然没有任何工作。任何帮助都感激不尽。

+0

凡'一滴URL'产生的?是否需要将文件保存到本地文件系统或服务器? – guest271314

+0

在服务器上。 blobURL有服务器路径,但它只在浏览器内存中。 blobURL正在由浏览器创建。它是一个浏览器对象。 – Ambr

+0

'POST'数据URI,文件到服务器的''Blob'或'File'表示,请参阅https://stackoverflow.com/questions/46557180/how-to-decode-and-upload-gif-via- ajax-and-php/46557251#46557251 – guest271314

回答

0

要转换Blob URLBlobPOST服务器可以使用fetch()Response.blob()

const blobURL = URL.createObjectURL(new Blob([123])); 
 
fetch(blobURL) 
 
.then(response => response.blob()) 
 
.then(blob => { 
 
    // do stuff with `blob`: `Blob` 
 
    console.log(blob); 
 
});

+0

你读过链接在以前发表的评论问题https://stackoverflow.com/questions/46638009/not-able-to-save-download-browser-blob-data-object/46639149?noredirect=1#comment80225489_46638009? – guest271314