我想通过拖放将文件发送到带有 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
parse 方法的日志如下:
fields: {foo: 'bar', upload=''}
files: {}