2016-05-13 38 views
2

我想包括一個錄製的視頻(保存爲blob)到將發佈的表單。從HTML表單發佈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) 
+0

發現了一個類似的問題,沒有愛: http://stackoverflow.com/questions/32080679/setting-hidden-input-value-to-a-blob-to-be-subbmited-using-form-method –

+0

你可能無法用普通的形式來做,你可能需要使用帶有FormData的AJAX。 – Barmar

+0

我的意思是我可以做到這一點,但我真的想用一種形式來做到這一點。 我擁有的一個解決方案是base64對我取回的數據進行編碼並將其推入輸入字段。 –

回答

2

我認爲一個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。