FormDataでサーバーにファイルをドラッグアンドドロップで送信し、ノードのFormidableでディスクに保存したい。
このコードを使用してファイルを送信しました: https://github.com/felixge/node-formidable#example
サーバーはデータを保存しますが、 js 経由で送信できませんFormData
。このコードを書きましたが、受信したデータをファイルとして解析せず、フィールドのように表示します。コードはこれをよりよく説明しています:
// Client code
//inside drop event so i have files:
files = event.dataTransfer.files;
file = files[0];
reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function(evt) {
var data, fd;
data = evt.target.result; // it's real binary data on log
fd = new FormData;
fd.append("foo", "bar");
fd.append("upload", data);
uploadImage(fd);
}
uploadImage = function(data) {
xmlHttp.overrideMimeType("multipart/form-data");
xmlHttp.open('post', '/upload');
xmlHttp.send(data);
}
それは機能し、データをサーバーに送信しますが、formidable
の解析メソッドは次のようにログに記録します。
fields: {foo: 'bar', upload=''}
files: {}