技術のbase64では、バイナリデータのテキスト表現である - これ以上の答えが正しいとあなたは大丈夫です場合。実際のバイナリデータを送信する場合は、FormDataを使用する必要があります。
質問を正しく読んでいる場合は、htmlの「スクリーンショット」をcanvas要素に保存しています。その場合は、toDataURL
の代わりにtoBlobを使用してください。 - >codepen
あなたはクロームインスペクターになります場合は
var request = new XMLHttpRequest();
request.open('POST', 'http://foo.com/submitform.php');
request.send(form);
の作業例:これは、我々はFormData
var form = new FormData();
form.append('image', blob, 'image.jpg');
以上を使用して送信することができたバイナリデータは定期的にXMLHttpRequest
を使用して送信することができますを与えるだろう正しいマルチパートリクエストが作成されていることがわかります:
------WebKitFormBoundaryGWsPW93HnMPQFcXB
Content-Disposition: form-data; name="image"; filename="image.jpg"
Content-Type: image/jpeg
------WebKitFormBoundaryGWsPW93HnMPQFcXB--
$.ajax({
url: 'http://foo.com/submitform.php',
type: 'POST',
data: form,
processData: false,
contentType: false
});
更新
ちょうどPHPでサーバ側でファイルアップロードの取り扱いについてご通知を見た:
また、jQueryを使ってフォーム上に送信することができます。アップロードされたファイルは、$ _FILES配列で提供されています:
<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['image']['name']);
if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
echo "File was successfully uploaded.\n";
} else {
echo "Error";
}
echo 'File info:';
print_r($_FILES);
?>
あなたがこの記事で答えで興味がある可能性がありhttp://stackoverflow.com/questions/19148065/how-to-post-binary-file-from-jquery-client-to-java-server-使用しています –