javascript – 通过Websockets将文件上传到Play Framework 2.0

前端之家收集整理的这篇文章主要介绍了javascript – 通过Websockets将文件上传到Play Framework 2.0前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用Play Framework 2.0,Javascript和WebSockets.
在示例中,我有一个AKKA演员,他知道所有的websockets.单个WebSockets.In有一个ListenerCallback对象,用于处理来自客户端的传入请求.
在客户端,我有Javascript / jquery将以JSON序列化的公式数据发送到websocket.这对于简单输入非常有效.但现在我想对文件做同样的事情.所以我必须以某种方式将文件数据转换为JSON数据(例如base64).有人知道如何正确地做到这一点吗?我想在Javascript中“收集”该文件,然后通过JSON将其发送到websocket.我知道base64效率不高,如果有人有其他选择,请告诉我.

谢谢

最佳答案
但是,您可以使用WebSocket和FileReader API,这些API仅在较新的浏览器上受支持. Javascript现在有一个TypedArray数据类型,可用于传输字节.例如,给定以下HTML:

您需要在文件输入字段中观察更改事件.在Javascript端(jQuery):

$("#picture").change(function(){
    var reader = new FileReader;

    reader.onloadend = function (bytes) {
        var ws = new WebSocket("ws://host/path");
        ws.send(bytes);        
    }

    reader.readAsArrayBuffer(this.files[0]);
}​);​

WebSocket PDU是最小框架(只有两个字节的头),当你发送()时,浏览器应该注意为二进制传输设置正确的操作码,并且在服务器上你应该能够读取原始字节流.我现在正在看Play API,以提供一个最小的工作示例.

猜你在找的jQuery相关文章