js读取二进制文件,发送给服务器

1.读取文件
    以拖拽的形式添加文件:
document.addEventListener('dragover', function(e){
    e.stopPropagation();
    e.preventDefault(); // 这里是为了取消浏览器自带的拖拽事件
}, false);
document.addEventListener('drop', function(e){
    e.stopPropagation();
    e.preventDefault();
    var file = e.dataTransfer.files[0]; // file就是需要传输的文件
}, false);

2.发送文件
    使用web socket发送文件
var url = '...'; // url是server中配置好的Web Socket的地址
var socket = new WebSocket(url);
socket.send(file);

3.接收文件
public class MyWebSocket extends WebSocketServlet {
    @Override
    protected StreamInbound createWebSocketInbound(String arg0,
        final HttpServletRequest request) {
        return new MessageInbound() {
            @Override
            protected void onTextMessage(CharBuffer buffer) throws IOException {}

            @Override
            protected void onBinaryMessage(CharBuffer buffer) throws IOException {
                byte[] data = new byte[buffer.remaining()];
                buffer.get(data); // 接收成功,file的内容存入了data数组中
            }
        };
    }
}

你可能感兴趣的:(java,Web,socket)