【发布时间】:2012-03-21 17:33:57
【问题描述】:
我正在与 Mozilla Europe 合作开展一个项目。在这个项目中,我使用 Worlize(服务器端)和 Mozilla(客户端)的 websocket,Node.js 来尝试将文件从客户端上传到服务器。
我目前的目标是将文件的arraybuffer 发送到服务器。创建数组缓冲区并发送它就可以了。
但是我的服务器告诉我 arraybuffer 是一个 utf8 消息而不是二进制消息。
我是不是误会了什么?如果没有,我该如何纠正?
客户端:
reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function(e) {
connection.send(e.target.result);
};
服务器端:
ws.on('message', function(message,flags) {
if (!flags.binary) {
//some code
}
else {
console.log('It\'s a binary');
}
我也尝试使用Blob,结果相同。二进制部分是不可见的。
【问题讨论】:
-
这是一个问答网站,“分叉和参与”不会在这里发生(参见stackoverflow.com/faq)。另外,请不要要求人们深入研究您的代码 - 包括解释您正在做什么所必需的最少代码。
-
我意识到这是前段时间有人问过的,所以我只是想添加 Firefox 11 及更高版本支持二进制 ArrayBuffer 和 Blob。
标签: javascript file-upload websocket binary arraybuffer