私のアプリでは、ユーザーが画像を描画できるキャンバスを使用しました。保存ボタンで、キャンバスから dataURL を取得します。ここで、ユーザーが作成したイメージをサーバー (node.js) に保存したいと考えています。ノード ファイル システムのドキュメントを読みましたが、何を使用できるか、何を使用する必要があるかわかりません。また、これまでフォームを使用してサーバーにデータを投稿するだけでしたが、保存ボタンをクリックしてデータを投稿する必要があります。どうすればよいですか?
1 に答える
したがって、答えには2つの部分があります。
クライアントの動作とサーバーの動作。ここには多くの生の情報が欠けています。
まず、コンテンツの生ストリームをデータストアの画像「ファイル」またはバイナリ コンテンツ (または svg の xml など) に変換するときに必要な形式で取得するメカニズムがあると仮定します。その未加工のストリーム コンテンツを、標準の XmlHttpRequest を使用してコンテンツを URL に投稿します。node.js プロセスでは、ストリーミングされたコンテンツを「キャッチ」し、それをストレージ メカニズム (ファイル、BLOB としてのデータベース、外部サービスへのエクスポートなど) に保持するルートと関数が必要です。
したがって、クライアント側での方法を尋ねると、XmlHttpRequest (dojo.xhr、jQuery.ajax など) を使用して URL に投稿し、生のコンテンツを投稿の「本文」としてプログラムでストリーミングします。画像コンテンツを取得してサーバー URL に送信する dom 要素の onClick メソッドに関数をバインドします。
jQuery('#postDiv').click(function() {
jQuery.ajax({
type : 'POST',
url : '/myapp/image/<id>',
data : someComponentInMyPage.getImageContent(),
success : function() { // show the user it worked },
datatype : 'image/png' // or whatever format is coming out
});
});
サーバーでは、入力ストリームを取得してファイルに書き込みます。これは、ノード側で使用しているフレームワーク/モジュールによって異なります。