91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

Netty+H5實現實時進度條文件上傳,支持斷點續傳。 1、WebSocketServer:服務啟動類 2、服務啟動后,瀏覽器訪問http://localhost:9999 3、FileWebSocketFrameHandler類SERVER_SAVE_PATH常量為文件上傳保存路經

資源截圖

代碼片段和文件信息

/**
?*?Created?on?2018年7月20日?by?caiming
?*/
package?com.netty.fileupload.handler;

import?java.io.File;
import?java.io.RandomAccessFile;
import?java.net.URISyntaxException;
import?java.net.URL;
import?java.nio.ByteBuffer;
import?java.nio.channels.FileChannel;

import?io.netty.channel.ChannelFuture;
import?io.netty.channel.ChannelFutureListener;
import?io.netty.channel.ChannelHandlerContext;
import?io.netty.channel.DefaultFileRegion;
import?io.netty.channel.SimpleChannelInboundHandler;
import?io.netty.channel.group.ChannelGroup;
import?io.netty.handler.codec.http.DefaultFullHttpResponse;
import?io.netty.handler.codec.http.DefaultHttpResponse;
import?io.netty.handler.codec.http.FullHttpResponse;
import?io.netty.handler.codec.http.HttpHeaderNames;
import?io.netty.handler.codec.http.HttpHeaderValues;
import?io.netty.handler.codec.http.HttpRequest;
import?io.netty.handler.codec.http.HttpResponse;
import?io.netty.handler.codec.http.HttpResponseStatus;
import?io.netty.handler.codec.http.HttpUtil;
import?io.netty.handler.codec.http.HttpVersion;
import?io.netty.handler.codec.http.LastHttpContent;
import?io.netty.handler.codec.http.websocketx.BinaryWebSocketframe;
import?io.netty.handler.codec.http.websocketx.CloseWebSocketframe;
import?io.netty.handler.codec.http.websocketx.TextWebSocketframe;
import?io.netty.handler.codec.http.websocketx.WebSocketframe;
import?io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker;
import?io.netty.handler.ssl.SslHandler;
import?io.netty.handler.stream.ChunkedNioFile;

/**
?*?@title
?*?@Description
?*?@author?caiming
?*?@version?1.0
?*?@修改記錄
?*?@修改序號,修改日期,修改人,修改內容
?*/
public?class?FileWebSocketframeHandler?extends?SimpleChannelInboundHandlerject>?{
//文件上傳路經
private?final?static?String?SERVER_SAVE_PATH?=?“D:/“;

private?static?final?String?WEBSOCKET_PATH?=?“/ws“;

private?final?ChannelGroup?group;

private?WebSocketServerHandshaker?handshaker;

private?String?fileName?=?“test“;

private?static?final?File?INDEX;

static?{
URL?location?=?HTTPRequestHandler.class.getProtectionDomain().getCodeSource().getLocation();//?當前class的絕對路徑
String?path;
try?{
path?=?location.toURI()?+?“index.html“;
path?=?!path.contains(“file:“)???path?:?path.substring(5);
INDEX?=?new?File(path);
}?catch?(URISyntaxException?e)?{
throw?new?IllegalStateException(“Unable?to?locate?index.html“?e);
}

}

public?FileWebSocketframeHandler(ChannelGroup?group)?{
this.group?=?group;
}

private?void?handleHttpRequest(ChannelHandlerContext?ctx?HttpRequest?req)?throws?Exception?{
//?100-continue?是用于客戶端在發送?post?數據給服務器時,征詢服務器情況,看服務器是否處理?post
//?的數據,如果不處理,客戶端則不上傳?post?是數據,反之則上傳。在實際應用中,通過?post?上傳大數據時,才會使用到
//?100-continue?協議。
if?(HttpUtil.is100ContinueExpected(req))?{
send100Continue(ctx);
}
RandomAccessFile?file?=?new?RandomAccessFile(INDEX?“r“);
HttpResponse?response?=?new?DefaultHttpResponse(req.protocolVersion()?HttpResponseStatus.OK);
response.headers().set(HttpHeaderNames.CONTENT_TYPE?“text/h

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-07-23?00:51??FileUpload\
?????文件????????1397??2018-07-23?00:51??FileUpload\.classpath
?????文件?????????527??2018-07-23?00:52??FileUpload\pom.xml
?????文件?????????539??2018-07-23?00:51??FileUpload\.project
?????目錄???????????0??2018-07-23?00:51??FileUpload\target\
?????目錄???????????0??2018-07-23?00:51??FileUpload\.settings\
?????文件?????????238??2018-07-23?00:51??FileUpload\.settings\org.eclipse.jdt.core.prefs
?????文件??????????86??2018-07-23?00:51??FileUpload\.settings\org.eclipse.m2e.core.prefs
?????目錄???????????0??2018-07-23?00:51??FileUpload\src\
?????目錄???????????0??2018-07-23?00:51??FileUpload\target\test-classes\
?????目錄???????????0??2018-07-23?00:55??FileUpload\target\classes\
?????文件????????4339??2018-07-23?00:55??FileUpload\target\classes\index.html
?????目錄???????????0??2018-07-23?00:51??FileUpload\src\test\
?????目錄???????????0??2018-07-23?00:51??FileUpload\src\main\
?????目錄???????????0??2018-07-23?00:53??FileUpload\target\classes\com\
?????目錄???????????0??2018-07-23?00:51??FileUpload\src\test\resources\
?????目錄???????????0??2018-07-23?00:51??FileUpload\src\test\java\
?????目錄???????????0??2018-07-23?00:55??FileUpload\src\main\resources\
?????文件????????4339??2018-07-20?06:16??FileUpload\src\main\resources\index.html
?????目錄???????????0??2018-07-23?00:53??FileUpload\src\main\java\
?????目錄???????????0??2018-07-23?00:53??FileUpload\target\classes\com\netty\
?????目錄???????????0??2018-07-23?00:53??FileUpload\src\main\java\com\
?????目錄???????????0??2018-07-23?00:53??FileUpload\target\classes\com\netty\fileupload\
?????目錄???????????0??2018-07-23?00:53??FileUpload\src\main\java\com\netty\
?????目錄???????????0??2018-07-23?00:56??FileUpload\target\classes\com\netty\fileupload\server\
?????文件?????????710??2018-07-23?00:56??FileUpload\target\classes\com\netty\fileupload\server\WebSocketServer$1.class
?????文件????????1614??2018-07-23?00:55??FileUpload\target\classes\com\netty\fileupload\server\WebSocketServerInitializer.class
?????文件????????3268??2018-07-23?00:56??FileUpload\target\classes\com\netty\fileupload\server\WebSocketServer.class
?????目錄???????????0??2018-07-23?00:54??FileUpload\target\classes\com\netty\fileupload\handler\
?????文件????????4122??2018-07-23?00:54??FileUpload\target\classes\com\netty\fileupload\handler\TextWebSocketframeHandler.class
?????文件????????5972??2018-07-23?00:54??FileUpload\target\classes\com\netty\fileupload\handler\HTTPRequestHandler.class
............此處省略9個文件信息

評論

共有 條評論