• fileupload


    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>WebSocket demo</title>
    <style>
    body {padding: 40px;}
    #outputPanel {margin: 10px;padding:10px;background: #eee;border: 1px solid #000;min-height: 300px;}
    </style>
    <script src="../lib/jquery.js"></script>
    <script src="../lib/jquery-ui.js"></script>
    <link href="../css/jquery-ui.css" rel="stylesheet">
    </head>
    <body>
     <input id='file' type='file'/>
     <input id='send' type='button' value='send'/>
    
     <input id='text' type='text' value=''/>
     <input id='connect' type='button' value='connect'/>
     <input id='sendtext' type='button' value='sendText'/>
     <input id='disconnect' type='button' value='disconnect'/>
     <div id='disp'></div>
     <a id='downloadFile' style='display:none;'></a>
    </body>
    <script>
    $(document).ready(function (){
    	var console = {log : function(text) {$("#disp").append(text).append("</br>")}};
    	var demo = {
    			socket : null, 	// WebSocket连接对象
    			host : '',		// WebSocket连接 url
    			connect : function() { 	// 连接服务器
    				window.WebSocket = window.WebSocket || window.MozWebSocket;
    				if (!window.WebSocket) {	// 检测浏览器支持
    					console.log('Error: WebSocket is not supported .');
    					return;
    				}
    				this.socket = new WebSocket(this.host); // 创建连接并注册响应函数
    				this.socket.onopen = function(){console.log("websocket is opened .");};
    				this.socket.onmessage = function(message) {
    					if(typeof message.data === 'string'){
    						console.log(message.data);
    					}else{
    						//, {type:"application/msword"}
    						var blob = new Blob([message.data]);
    						$("#downloadFile")[0].download = "downloadFile";
    						$("#downloadFile")[0].href =  URL.createObjectURL(blob);
    						$("#downloadFile")[0].click();
    
    					}
    				};
    				this.socket.onclose = function(){
    					console.log("websocket is closed .");
    					demo.socket = null; // 清理
    				};
    			},
    			send : function(message) {	// 发送消息方法
    				if (this.socket) {
    					this.socket.send(message);
    					return true;
    				}
    				console.log('please connect to the server first !!!');
    				return false;
    			}
    		};
    	demo.host=(window.location.protocol == 'http:') ? 'ws://' : 'wss://' ;
    	demo.host += window.location.host + '/websocket/HelloWebSocketServlet';
    
    
    	$("#connect").on('click',function (){
    		if (!demo.socket) 	demo.connect();
    		else console.log('websocket already exists .');
    	});
    	$("#disconnect").on('click',function (){
    		if (demo.socket) demo.socket.close();
    		else  console.log('websocket is not found .');
    	});
    	$("#sendtext").on('click',function (){
    		var message = $("#text").val();
    		if (!message) return;
    		if (!demo.send(message)) return;
    		$("#text").val("");
    	});
    
    	$("#send").on('click',function (){
    		var f = $("#file")[0].files[0];
    		var reader = new FileReader();
    		reader.readAsArrayBuffer(f)
    		//reader.readAsBinaryString(f);
    		reader.onload = function(){
    			//var fs = new FileSlicer(reader.result);
    			//demo.send(f.name);
    			//for(var i = 0; i < fs.slices; ++i) {
                //	demo.send(fs.getNextSlice()); // see below
            	//}
    			var byteArray = new Uint8Array(reader.result);
    			demo.send(byteArray.buffer);
    			console.log( f.name + "[" + f.size + "byte]" + "アップロード完了");
    		};
    	});
    
    	function FileSlicer(file) {
    	    // randomly picked 1MB slices,
    	    // I don't think this size is important for this experiment
    	    this.sliceSize = 1024*1024;
    	    this.slices = Math.ceil(file.byteLength / this.sliceSize);
    
    	    this.currentSlice = 0;
    
    	    this.getNextSlice = function() {
    	        var start = this.currentSlice * this.sliceSize;
    	        var end = Math.min((this.currentSlice+1) * this.sliceSize, file.byteLength);
    	        ++this.currentSlice;
    
    	        return file.slice(start, end);
    	    }
    	}
    });
    </script>
    </html>
    
  • 相关阅读:
    sql初始化XML操作
    c#字符串操作方法实例
    C#日期格式转换
    asp.net中打印指定控件内容
    NET中验证控件表达式汇总
    js中页面刷新和页面跳转的方法总结
    数据库备份与还原SQL代码
    NIO 基础之 Buffer
    Java堆外内存之突破JVM枷锁
    JAVA NIO:Buffer.mark()的用法
  • 原文地址:https://www.cnblogs.com/keyiei/p/7442152.html
Copyright © 2020-2023  润新知