2016-05-13 7 views
2

投稿されるフォームに記録された動画(BLOBとして保存されている)を含める必要があります。HTMLフォームからBLOBをポストするためのフォーム入力タイプとは何ですか?

つの質問:

  1. ブロブを投稿するために必要な入力タイプは何ですか?
  2. BLOBをその入力タイプに割り当てるにはどうすればよいですか?

私が見たことのいくつかは、入力タイプのファイルを使用することを提案しました。

例形式:

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

私は私がフォームにブロブを添付する唯一の方法はいるFormData()オブジェクトであると思い

$("[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

私はそれを行うことができますが、私は本当にフォームでそれをしたいと思います。 私が持っている1つの解決策は、データをエンコードしてbase64に戻し、入力フィールドに入力することです。 –

答えて

2

ような何かをしたいと仮定しています。

var formData = new FormData(); 
formData.append("name", blob, filename); 

、その後、同様のXMLHttpRequestを使用してフォームを送信:

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

あなたは他のフォームの情報と一緒に、このブロブを送信する必要があればあなたの代わりに自分のいるFormDataオブジェクトに、通常のフォームデータを添付でき、全部を送る。あるいは、Blobだけを送信し、アップロードに関連するキーをサーバーに返すようにして、フォームの隠された要素に挿入するようにしてください。フォームが正常に送信されると、サーバーはそのデータを添付できます以前にアップロードされたBLOBに追加します。

関連する問題