我为我的客户端应用程序使用ExtJS 4.1.1。我需要将文件上传到套接字服务器。我知道我可以使用描述为here的WebSocket扩展将消息发送到套接字服务器。但我不确定这是否可以与文件一起使用。ExtJS:发送文件到套接字服务器
我会很感激任何以前遇到过这样的任务的人的建议。它不必使用ExtJS WebSocket扩展来完成,但它必须在客户端使用ExtJS来完成。我使用Netty作为套接字服务器,但我认为这在这里并不重要。
UPDATE:
继@的Ee-P的建议,我已经使用this extension尝试。但是,该扩展会引发异常Uncaught TypeError: Cannot read property 'size' of undefined
。我可以在服务器端收到文件详细信息,但我不确定如何在服务器端访问文件本身。我不确定实际文件是否被发送,或者是否只是文件的详细信息。 @ Ee-P提到了一个包装类;我所做的所有事情都包括JS文件和Mootools类。然后,在我的代码,我有:
if(!WebSocketFileTransfer.supported()) {
console.log('WebSocket File Transfer is not fully supported by your browser.');
return;
}
var transfer = new WebSocketFileTransfer({
url: 'ws://localhost:8087/ws',
file: file,
blockSize: 1024,
type: WebSocketFileTransfer.binarySupported() ? 'binary' : 'base64',
type: 'binary',
progress: function(event) {
console.log('File upload in progress');
},
success: function(event) {
console.log('File successfully uploaded.');
}
});
transfer.start();
什么我可能做错了或替代方案将非常赞赏任何想法。
谢谢@Ee-P,我会试试看。 – okello 2013-05-03 14:33:39
没问题,我会亲自在/ app/util中创建一个单例类,并使用它将功能包装到WebsocketFileTransfer类中。如果你需要代码示例,请告诉我,我会为你解决一些问题:) – 2013-05-03 14:35:24
非常感谢@ Ee-P。我已经离开了。我目前正在测试它。我会在一天结束时通知你。另外,感谢您的协助。我会先尝试一下。 – okello 2013-05-06 07:40:10