はちょうどあなたのフォームに隠し入力要素を作成します。送信する前に要素の値にデータを添付し
<input type="hidden" name="myHiddenField">
(タイプに気づきます)。
var imageData = canvas.toDataURL('image/png');
document.getElementsByName("myHiddenField")[0].setAttribute("value", imageData);
UPDATE
サーバーの需要は、input
要素の名前としてその文字列が含まれ、提出されたデータには、パラメータ「ファイル名」を持っている場合。
<input type="hidden" name="filename"/>
これは、フォームに「filename」パラメータが含まれているデータを送信するようにトリックします。
あなたはこのためにXMLHttpRequest
を使用したい場合は、以下のサンプルです:
//Prepare data to be sent
var imageData = canvas.toDataURL('image/png');
var params = "filename=" + imageData;
//Initiate the request
var httpRequest = new XMLHttpRequest();
httpRequest.open('POST', 'test.php', true);
//Send proper headers
httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httpRequest.setRequestHeader("Content-length", params.length);
httpRequest.setRequestHeader("Connection", "close");
//Send your data
httpRequest.send(params);
は、なぜあなたは、入力をファイルにbase64で画像を変換する必要がありますか? base64文字列をサーバーに送信し、それをイメージサーバー側に変換するだけです。 –
@ YeldarKurmangaliyevサーバーは第三者ですが、私はAPIを変更することはできません。 –
ああ、そうだ。私は、この記事はあなたを助けることができると思います:http://YerdarKurmangaliyevありがとうございました:@stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata/5100158 –