ExtJS:发送文件到套接字服务器



我使用ExtJS 4.1.1为我的客户端应用程序。我需要上传文件到套接字服务器。我知道我可以使用这里描述的WebSocket扩展向socket服务器发送消息。但我不确定这是否可以与文件一起工作。

我将感谢任何曾经面临过这种任务的人的建议。它不必使用ExtJS WebSocket扩展,但必须在客户端使用ExtJS完成。我使用Netty作为我的套接字服务器,但我认为这在这里无关紧要。

更新:

按照@Ee-P的建议,我试过使用这个扩展。但是,该扩展会抛出异常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();

对于我可能做错的地方或替代方法,我将非常感激。

你可以在HTML5浏览器中使用Websocket上传文件,你只需要创建自定义类来为你处理这个。在ExtJS中很容易做到这一点。只要在你的控制器中使用你的自定义类,你就万事俱备了。例如,你可以使用这个:https://github.com/vincentdieltiens/WebSocketFileTransfer类并将其包含在ExtJS应用程序中,然后为它创建一个包装器并在控制器上使用它。

相关内容

  • 没有找到相关文章

最新更新