2017-10-09 62 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