日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

stream+springmvc实现文件断点续传

發布時間:2025/3/12 c/c++ 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stream+springmvc实现文件断点续传 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
手上有個文件上傳的需求,并且要支持斷點續傳最好要兼容性好一些,之前用過uploadify這個jquery上傳插件,但是首先它不支持斷點續傳而且HTML5版本的竟然要收費,秉承中國特色這里就不予考慮了;于是在網上找到了一個叫 Stream的支持HTML5和Flash并且支持斷點續傳的這么一個插件,經過一天的嘗試,終于把它整合到項目中去,現勉強能用了后續再優化優化應該能投入上線,廢話不多上代碼! HTML+JS: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>斷點續傳</title> <link rel="stylesheet" type="text/css" href="<%=basePath%>/statics/thirdparty/stream/css/stream-v1.css"> <script type="text/javascript" src="<%=basePath%>/statics/thirdparty/stream/js/stream-v1.js"></script> </head> <body> <div id="i_select_files"> </div > <div id="i_stream_files_queue"> </div> <button onclick="javascript:_t.upload();">開始上傳</button>|<button onclick="javascript:_t.stop();">停止上傳</button>|<button onclick="javascript:_t.cancel();">取消</button> |<button onclick="javascript:_t.disable();">禁用文件選擇</button>|<button onclick="javascript:_t.enable();">啟用文件選擇</button> |<button onclick="javascript:_t.hideBrowseBlock();">隱藏文件選擇按鈕</button>|<button onclick="javascript:_t.showBrowseBlock();">顯示文件選擇按鈕</button> |<button onclick="javascript:_t.destroy();_t=null;_t=new Stream(config);">銷毀重新生成按鈕</button> <br> Messages: <div id="i_stream_message_container" class="stream-main-upload-box" style="overflow: auto;height:200px;"> </div> </body><script type="text/javascript">/** * 配置文件(如果沒有默認字樣,說明默認值就是注釋下的值) * 但是,on*(onSelect, onMaxSizeExceed...)等函數的默認行為 * 是在ID為i_stream_message_container的頁面元素中寫日志 */ var config = { browseFileId : "i_select_files", /** 選擇文件的ID, 默認: i_select_files */ browseFileBtn : "<div>請選擇文件</div>", /** 顯示選擇文件的樣式, 默認: `<div>請選擇文件</div>` */ dragAndDropArea: "i_select_files", /** 拖拽上傳區域,Id(字符類型"i_select_files")或者DOM對象, 默認: `i_select_files` */ dragAndDropTips: "<span>可以把文件(文件夾)拖拽到這里</span>", /** 拖拽提示, 默認: `<span>把文件(文件夾)拖拽到這里</span>` */ filesQueueId : "i_stream_files_queue", /** 文件上傳容器的ID, 默認: i_stream_files_queue */ filesQueueHeight : 200, /** 文件上傳容器的高度(px), 默認: 450 */ messagerId : "i_stream_message_container", /** 消息顯示容器的ID, 默認: i_stream_message_container */ maxSize: 4294967296, /** 單個文件的最大大小,默認:2G */ multipleFiles: false, /** 多個文件一起上傳, 默認: false */ autoUploading: true, /** 選擇文件后是否自動上傳, 默認: true */// autoRemoveCompleted : true, /** 是否自動刪除容器中已上傳完畢的文件, 默認: false */// retryCount : 5, /** HTML5上傳失敗的重試次數 */// postVarsPerFile : { /** 上傳文件時傳入的參數,默認: {} */// param1: "val1",// param2: "val2"// },// swfURL : "/swf/FlashUploader.swf", /** SWF文件的位置 */ tokenURL : "<%=request.getContextPath()%>/tk", /** 根據文件名、大小等信息獲取Token的URI(用于生成斷點續傳、跨域的令牌) */// frmUploadURL : "/fd;", /** Flash上傳的URI */ uploadURL : "<%=request.getContextPath()%>/upload", /** HTML5上傳的URI */// simLimit: 200, /** 單次最大上傳文件個數 */// extFilters: [".txt", ".rpm", ".rmvb", ".gz", ".rar", ".zip", ".avi", ".mkv", ".mp3"], /** 允許的文件擴展名, 默認: [] */// onSelect: function(list) {alert('onSelect')}, /** 選擇文件后的響應事件 */ onMaxSizeExceed: function(size, limited, name) {alert('文件已超過4G');}, /** 文件大小超出的響應事件 */// onFileCountExceed: function(selected, limit) {alert('onFileCountExceed')}, /** 文件數量超出的響應事件 */// onExtNameMismatch: function(name, filters) {alert('onExtNameMismatch')}, /** 文件的擴展名不匹配的響應事件 */// onCancel : function(file) {alert('Canceled: ' + file.name)}, /** 取消上傳文件的響應事件 */// onComplete: function(file) {alert('onComplete')}, /** 單個文件上傳完畢的響應事件 */ onQueueComplete: function() { alert('onQueueComplete'); }, /** 所以文件上傳完畢的響應事件 */// onUploadError: function(status, msg) {alert('onUploadError')} /** 文件上傳出錯的響應事件 */// onDestroy: function() {alert('onDestroy')} /** 文件上傳出錯的響應事件 */ }; var _t = new Stream(config);</script></html> 頁面代碼精簡了下,只留下了關鍵部分。 TokenServlet: package com.dnion.oa.stream.servlet;?import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.lang.StringUtils;import org.json.JSONException;import org.json.JSONObject;import com.dnion.oa.stream.util.IoUtil;import com.dnion.oa.stream.util.TokenUtil;import com.dnion.oa.utils.Configuration;import com.dnion.oa.utils.Constant;?/** * According the file name and its size, generate a unique token. And this * token will be refer to user's file. */public class TokenServlet extends HttpServlet { private static final long serialVersionUID = 2650340991003623753L; static final String FILE_NAME_FIELD = "name"; static final String FILE_SIZE_FIELD = "size"; static final String TOKEN_FIELD = "token"; static final String SERVER_FIELD = "server"; static final String SUCCESS = "success"; static final String MESSAGE = "message"; @Override public void init() throws ServletException { }? @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String name = StringUtils.trimToEmpty(req.getParameter(FILE_NAME_FIELD)); String size = StringUtils.trimToEmpty(req.getParameter(FILE_SIZE_FIELD)); String token = TokenUtil.generateToken(name, size); PrintWriter writer = resp.getWriter(); JSONObject json = new JSONObject(); try { if (name.equals("")) { json.put(SUCCESS, false); json.put(MESSAGE, "文件名為空"); }else if (size.equals("")) { json.put(SUCCESS, false); json.put(MESSAGE, "文件大小為空"); }else{ json.put(TOKEN_FIELD, token); if (Configuration.getInstance().getIsCrossed()) json.put(SERVER_FIELD, Configuration.getInstance().getCrossServer()); json.put(SUCCESS, true); json.put(MESSAGE, "獲取TOKEN成功"); } } catch (JSONException e) { e.printStackTrace(); } /** TODO: save the token. */ writer.write(json.toString()); }? @Override protected void doHead(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doHead(req, resp); }? @Override public void destroy() { super.destroy(); }} 這是實現上傳功能必須實現接口之一,看名字就知道基本功能就是獲取token實現‘斷點‘功能 StreamServlet: package com.dnion.oa.stream.servlet;?import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.json.JSONException;import org.json.JSONObject;import com.dnion.oa.stream.util.IoUtil;import com.dnion.oa.utils.Configuration;?/** * File reserved servlet, mainly reading the request parameter and its file * part, stored it. */public class StreamServlet extends HttpServlet { private static final long serialVersionUID = -8619685235661387895L; /** when the has increased to 10kb, then flush it to the hard-disk. */ static final int BUFFER_LENGTH = 10240; static final String START_FIELD = "start"; public static final String CONTENT_RANGE_HEADER = "content-range"; @Override public void init() throws ServletException { } /** * Lookup where's the position of this file? */ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doOptions(req, resp); final String token = req.getParameter(TokenServlet.TOKEN_FIELD); final String size = req.getParameter(TokenServlet.FILE_SIZE_FIELD); final String fileName = req.getParameter(TokenServlet.FILE_NAME_FIELD); final PrintWriter writer = resp.getWriter(); /** TODO: validate your token. */ JSONObject json = new JSONObject(); long start = 0; boolean success = true; String message = ""; try { File f = IoUtil.getTokenedFile(token); start = f.length(); /** file size is 0 bytes. */ if (token.endsWith("_0") && "0".equals(size) && 0 == start) f.renameTo(IoUtil.getFile(fileName)); } catch (FileNotFoundException fne) { message = "Error: " + fne.getMessage(); success = false; } finally { try { if (success) json.put(START_FIELD, start); json.put(TokenServlet.SUCCESS, success); json.put(TokenServlet.MESSAGE, message); } catch (JSONException e) {} writer.write(json.toString()); IoUtil.close(writer); } }? @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doOptions(req, resp); final String token = req.getParameter(TokenServlet.TOKEN_FIELD); final String fileName = req.getParameter(TokenServlet.FILE_NAME_FIELD); Range range = IoUtil.parseRange(req); OutputStream out = null; InputStream content = null; final PrintWriter writer = resp.getWriter(); /** TODO: validate your token. */ JSONObject json = new JSONObject(); long start = 0; boolean success = true; String message = ""; File f = IoUtil.getTokenedFile(token); try { if (f.length() != range.getFrom()) { /** drop this uploaded data */ throw new StreamException(StreamException.ERROR_FILE_RANGE_START); } out = new FileOutputStream(f, true); content = req.getInputStream(); int read = 0; final byte[] bytes = new byte[BUFFER_LENGTH]; while ((read = content.read(bytes)) != -1) out.write(bytes, 0, read); start = f.length(); } catch (StreamException se) { success = StreamException.ERROR_FILE_RANGE_START == se.getCode(); message = "Code: " + se.getCode(); } catch (FileNotFoundException fne) { message = "Code: " + StreamException.ERROR_FILE_NOT_EXIST; success = false; } catch (IOException io) { message = "IO Error: " + io.getMessage(); success = false; } finally { IoUtil.close(out); IoUtil.close(content);? /** rename the file */ if (range.getSize() == start) { /** fix the `renameTo` bug */ File dst = IoUtil.getFile(fileName); dst.delete(); f.renameTo(dst); System.out.println("TK: `" + token + "`, NE: `" + fileName + "`"); /** if `STREAM_DELETE_FINISH`, then delete it. */ if (Configuration.getInstance().getIsDeleteFinished()) { dst.delete(); } } try { if (success) json.put(START_FIELD, start); json.put(TokenServlet.SUCCESS, success); json.put(TokenServlet.MESSAGE, message); } catch (JSONException e) {} writer.write(json.toString()); IoUtil.close(writer); } } @Override protected void doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("application/json"); resp.setHeader("Access-Control-Allow-Headers", "Content-Range,Content-Type"); resp.setHeader("Access-Control-Allow-Origin", Configuration.getInstance().getCrossOrigins()); resp.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS"); }? @Override public void destroy() { super.destroy(); }} 必須實現接口之一,也是最為主要的一個servlet 這兩個接口其實就是對應了js代碼中tokenURL和uploadURL,跳轉關系在web.xml中定義,把下面這段加進去就行了,記得改路徑 <servlet> <servlet-name>TokenServlet</servlet-name> <servlet-class>com.dnion.oa.stream.servlet.TokenServlet</servlet-class> <load-on-startup>0</load-on-startup></servlet><servlet-mapping> <servlet-name>TokenServlet</servlet-name> <url-pattern>/tk</url-pattern></servlet-mapping><servlet> <servlet-name>StreamServlet</servlet-name> <servlet-class>com.dnion.oa.stream.servlet.StreamServlet</servlet-class> <load-on-startup>0</load-on-startup></servlet><servlet-mapping> <servlet-name>StreamServlet</servlet-name> <url-pattern>/upload</url-pattern></servlet-mapping>?<servlet> <servlet-name>FormDataServlet</servlet-name> <servlet-class>com.dnion.oa.stream.servlet.FormDataServlet</servlet-class> <load-on-startup>0</load-on-startup></servlet><servlet-mapping> <servlet-name>FormDataServlet</servlet-name> <url-pattern>/fd</url-pattern></servlet-mapping> 基本參數保存在properties文件中 stream-config.properties: # file stored repository (Chinese words need ASCII, help tool @http://tool.oschina.net/encode?type=3)STREAM_FILE_REPOSITORY=# when the file has uploaded, whether delete it.STREAM_DELETE_FINISH=false# this server whether allow other different domain[s] upload file to this serverSTREAM_IS_CROSS=false# allowed domain (PS: flash method need modifying the `crossdomain.xml`)STREAM_CROSS_ORIGIN=*# when Browser @http:www.A.com, the file will upload to @STREAM_CROSS_SERVERSTREAM_CROSS_SERVER=http://customers.duapp.comTEMP_UPLOAD_PATH=E\:\\resumeUpload //暫時放在本地 測試用 Configuration.java讀取配置文件 Configuration.java:
package com.dnion.oa.utils;?import org.apache.commons.configuration.ConfigurationException;import org.apache.commons.configuration.PropertiesConfiguration;?public class Configuration { private static Configuration config; /** * 版本號 */ private String version; private String crossServer; private String crossOrigins; private String dnionTranscoderUrl; private Boolean isDeleteFinished; private Boolean isCrossed; private String uploadPath; private Configuration() { }? public synchronized static Configuration getInstance() { if (config == null) { config = new Configuration(); config.init(); } return config; } /** * 初始化 */ private void init() { PropertiesConfiguration prop = new PropertiesConfiguration(); prop.setEncoding("utf-8"); try { prop.load("props/stream-config.properties"); this.setCrossServer(prop.getString("STREAM_CROSS_SERVER", "")); this.setCrossOrigins(prop.getString("STREAM_CROSS_ORIGIN", "")); this.setDnionTranscoderUrl(prop.getString("DNION_TRANS_CODER_URL", "")); this.setIsDeleteFinished(Boolean.valueOf(prop.getString( "STREAM_DELETE_FINISH", ""))); this.setIsCrossed(Boolean.valueOf(prop.getString("STREAM_IS_CROSS", ""))); this.setChownShellCmd(prop.getString("CHOWN_SHELL_CMD", "")); this.setUploadPath(prop.getString("TEMP_UPLOAD_PATH", "")); } catch (ConfigurationException e) { e.printStackTrace(); } }? public String getVersion() { return version; }? public void setVersion(String version) { this.version = version; }? ...getter and setters 還有6對,別忘了} Maven依賴: <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version></dependency><dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version></dependency><dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20090211</version></dependency><dependency> <groupId>commons-configuration</groupId> <artifactId>commons-configuration</artifactId> <version>1.9</version></dependency> 其他還有一些TokenUtil.java就不給出了,作者代碼托管在oschina上,自己拉了看著改吧~ 效果圖稍候放出:



總結

以上是生活随笔為你收集整理的stream+springmvc实现文件断点续传的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

免费精品国产 | 国产精品 日本 | 欧美一区二区三区四区夜夜大片 | 激情伊人 | 日韩在线观看精品 | 国产91大片 | 国产成人在线精品 | 免费a级大片 | 国产色在线 | 福利精品在线 | 成人久久18免费网站 | 色婷婷骚婷婷 | 久久久99久久 | 五月婷婷久久综合 | 九九视频免费观看视频精品 | 一区二区理论片 | 91麻豆精品国产午夜天堂 | 国产精品门事件 | 国产精品一区二区久久 | 黄色av三级在线 | 成人h动漫精品一区二 | 五月天堂色 | 国产一区二区三区久久久 | 一级片黄色片网站 | 日本精品久久久久久 | 国产69精品久久久久久 | 国产色在线 | 日韩在线观看你懂的 | 亚洲国产精品va在线看黑人动漫 | www.国产精品| 日本黄色免费播放 | 亚洲人av免费网站 | 亚洲国产欧美一区二区三区丁香婷 | 欧美日韩不卡在线 | 中文字幕精品三区 | 伊人久久一区 | 最新婷婷色 | 97超碰在线视 | 亚州视频在线 | 91日韩在线专区 | 日韩二区精品 | 久草在线电影网 | 国产精品美女在线观看 | 亚洲色图22p| 久久艹精品| 日韩精品电影在线播放 | 久久久精品网站 | 在线综合色| 国产精品一区二区美女视频免费看 | 日韩在线视频观看 | 成年人在线免费看视频 | 亚洲精品乱码久久久久 | 黄色精品一区 | 久草精品视频 | 69xxxx欧美| 美女网站免费福利视频 | 综合铜03| 欧美视频18 | 国产精品嫩草影院99网站 | 中文字幕在线观看第二页 | a一片一级| 国产精品扒开做爽爽的视频 | 精品久久一二三区 | 久亚洲 | 美女激情影院 | 中文在线免费一区三区 | 在线看日韩av | 精品自拍sae8—视频 | 免费日韩一区二区三区 | 99久久er热在这里只有精品66 | 狠狠激情中文字幕 | 毛片99| 国产精品美女久久久久aⅴ 干干夜夜 | 久久精品xxx | 在线播放第一页 | 中文字幕一区三区 | 成人三级网站在线观看 | 久久久久久国产精品 | 免费a v观看 | www.久久免费视频 | 成人免费视频播放 | 久久午夜精品影院一区 | 99热这里是精品 | 91久久人澡人人添人人爽欧美 | www.com久久 | 欧美黄色高清 | 国产精品久久久久久久久久免费 | 亚洲婷婷网 | 久久人人97超碰国产公开结果 | 在线黄色免费av | 国产视频资源 | 国产成人精品女人久久久 | 欧美亚洲精品一区 | 国产在线免费 | av在线在线 | 久久这里只有精品视频99 | 日本视频久久久 | 欧美日韩一区三区 | 欧美日韩亚洲在线观看 | 日韩欧美在线观看一区二区三区 | 色噜噜日韩精品一区二区三区视频 | 欧美日韩国产在线精品 | 欧美日韩免费视频 | 国产一二三在线视频 | 91免费版成人 | 欧洲激情在线 | 日本爽妇网 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 精品国产免费观看 | 亚洲综合视频在线观看 | 日韩一区二区免费播放 | 99热国产精品| www.久草.com| a黄色片| 免费av成人在线 | 国产裸体永久免费视频网站 | 精品v亚洲v欧美v高清v | 日韩av电影中文字幕在线观看 | 超碰人人射 | 久久国产剧场电影 | 天天操天天干天天操天天干 | 欧美精品久久久久久久久久丰满 | 精品色综合 | 久久综合综合久久综合 | 国产一级特黄电影 | 久久午夜精品 | 成人国产一区二区 | 亚洲视频在线观看网站 | 久草视频一区 | 久草网免费| av电影 一区二区 | 成人免费一级 | 精品黄色在线 | 久草爱视频| 成人在线播放av | 91麻豆精品国产自产在线游戏 | 久色免费视频 | 久久久久福利视频 | 色在线视频网 | 日韩视频在线不卡 | 99精品国产视频 | 天天操天天射天天爱 | 不卡中文字幕av | 黄色官网在线观看 | 亚洲欧美在线观看视频 | 亚洲精选久久 | 66av99精品福利视频在线 | 夜色资源站国产www在线视频 | 成人一区二区三区在线 | 欧美最新大片在线看 | 激情欧美一区二区免费视频 | 开心色停停 | 国产精品久久久久久久久久 | 麻豆系列在线观看 | 国产精品精品国产色婷婷 | 亚洲精品视频国产 | 五月天婷婷免费视频 | 99热这里只有精品8 久久综合毛片 | 亚洲精品视频免费在线观看 | 在线免费看黄网站 | 成人国产电影在线观看 | 水蜜桃亚洲一二三四在线 | 国内精品久久久久久久 | 99在线观看免费视频精品观看 | 久久超级碰 | 免费黄色激情视频 | 亚洲精品玖玖玖av在线看 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 在线成人一区 | 亚洲精品在线国产 | 四虎免费在线观看 | 18国产精品福利片久久婷 | 91免费日韩 | 国产91大片 | 中文字幕有码在线播放 | 久久av中文字幕片 | 亚洲最新毛片 | 成 人 黄 色 视频播放1 | 91女子私密保健养生少妇 | 我要色综合天天 | 国产高清亚洲 | 日韩精品视频免费专区在线播放 | 精品亚洲免费 | 黄p在线播放| 国产精品一区二区白浆 | 深夜福利视频在线观看 | 亚洲最新在线 | 亚洲资源在线观看 | 久久成人午夜 | 在线看v片成人 | 国产精品久久久久久久久大全 | 欧美精品午夜 | 成人久久久久久久久久 | 国产成人精品午夜在线播放 | 国产无区一区二区三麻豆 | 亚洲欧洲国产精品 | 国产一区国产二区在线观看 | 亚州人成在线播放 | 国内成人精品视频 | 精品亚洲国产视频 | 亚洲一本视频 | 最新久久免费视频 | 国产精品女同一区二区三区久久夜 | 日韩在线视频观看 | 日本中文乱码卡一卡二新区 | 97色国产 | 精品中文字幕在线观看 | 日韩中文字幕一区 | 美女又爽又黄 | 国产精品电影一区二区 | 韩国视频一区二区三区 | 国产精品永久免费在线 | 国产在线观看地址 | 香蕉免费在线 | 成年人在线视频观看 | 九色91在线 | 911亚洲精品第一 | 日本乱视频| 日韩理论在线 | 西西4444www大胆无视频 | 毛片永久新网址首页 | 在线视频麻豆 | 97超碰在 | 国产黄色精品在线 | 91尤物在线播放 | 国产成人av在线 | 五月婷婷在线播放 | 国内视频一区二区 | 亚洲国产精品电影 | 亚洲精色 | 国产xxxx做受性欧美88 | 久久久久国产精品免费网站 | 最近乱久中文字幕 | 日日夜操 | 黄色影院在线观看 | 在线观看深夜视频 | 九9热这里真品2 | 不卡的av在线 | 91黄色影视 | 日本黄色免费电影网站 | 亚洲最新av在线网站 | av一级一片 | 在线只有精品 | 欧美日韩久 | 欧美人体xx | 免费看三级 | 成 人 黄 色 视频免费播放 | 久久精久久精 | 日韩欧美高清在线观看 | 在线免费高清 | 五月香视频在线观看 | 天天视频色版 | 国产高清不卡一区二区三区 | 国产一区高清在线 | 国产精品乱看 | 国产午夜激情视频 | 天天五月天色 | 91最新在线观看 | 成人av动漫在线 | 亚洲国产午夜精品 | 亚洲最大成人免费网站 | 国产69精品久久久久99尤 | 亚洲欧美日韩精品久久奇米一区 | 国产精品麻豆免费版 | 999视频网站 | 午夜性色 | 最新不卡av| 成人在线免费看 | 欧洲激情综合 | 中文字幕综合在线 | 国产精品18毛片一区二区 | 中文字幕欧美三区 | 免费在线观看中文字幕 | 国产精品欧美日韩 | 韩国精品视频在线观看 | 国产一区在线免费观看视频 | 国产 欧美 在线 | 国产视频一区在线播放 | 成人免费视频网 | 国产精品福利午夜在线观看 | 一区二区三区四区精品 | 国产成视频在线观看 | 成人一级影视 | 人人要人人澡人人爽人人dvd | 韩国一区二区av | 午夜精品成人一区二区三区 | 亚洲精品综合一二三区在线观看 | 亚洲涩涩网 | 91三级在线观看 | 黄色网址中文字幕 | 国外av在线 | 国产又粗又猛又黄 | 最新日韩视频在线观看 | 久久婷婷激情 | 久久国产精品久久国产精品 | 日韩av一区二区在线播放 | 欧美福利视频 | 黄色小说免费观看 | 久久成人高清 | 久久精品国产精品亚洲 | 在线国产高清 | 高清免费在线视频 | 精品国产三级 | 一区二区视频欧美 | 久久精品久久国产 | 久热免费在线 | 日韩中文字幕视频在线观看 | 日日操日日插 | 久久国产精品视频观看 | 国产黄色片在线免费观看 | 精品国产一二三 | 一级a性色生活片久久毛片波多野 | 精品久久福利 | 天天爽人人爽夜夜爽 | 麻豆国产视频下载 | 99精品视频精品精品视频 | 精品国产午夜 | 亚洲四虎在线 | 欧美一区二区三区四区夜夜大片 | www.av在线播放 | 狠狠色狠狠色合久久伊人 | 免费在线激情电影 | 国产国语在线 | 91av视频在线观看 | 国产毛片久久久 | 国产成人精品一区在线 | 婷婷精品国产欧美精品亚洲人人爽 | 99视频免费在线观看 | 在线观看黄色 | av福利在线导航 | 91mv.cool在线观看 | 91精品伦理 | 亚洲精品456在线播放第一页 | 久久久国际精品 | 91视频3p | 99精品热视频只有精品10 | 成人综合免费 | av黄色大片 | 青青河边草免费直播 | 欧美日韩一区二区三区免费视频 | 综合色在线观看 | 欧美性视频网站 | 超碰97人人干 | 欧美精品一二三 | av成人免费| 欧美a性| 91精品网站 | 久久99精品热在线观看 | 亚洲热久久 | 又黄又刺激 | 天天射综合网视频 | 国产成人亚洲在线观看 | 国产原创av在线 | 在线中文字幕播放 | 国产精品系列在线 | 亚洲三级影院 | 国产免费资源 | 最近2019中文免费高清视频观看www99 | 在线播放国产一区二区三区 | 日韩精品免费在线播放 | 五月宗合网 | 国产在线观看,日本 | 黄色毛片在线看 | 丝袜少妇在线 | 在线电影日韩 | 欧美一区二区伦理片 | 丁香久久激情 | 九九热免费视频在线观看 | 欧洲精品久久久久毛片完整版 | 在线免费观看国产 | 婷婷视频在线观看 | 久久久久久国产精品久久 | 久久国产精品99久久久久 | 日日日干 | 久久综合久久综合这里只有精品 | 97超碰在线久草超碰在线观看 | 国产精品一区二区久久国产 | 久久精品国产亚洲 | 婷婷久草 | av手机在线播放 | 久久国精品 | 国产高清不卡一区二区三区 | 久久久受www免费人成 | 在线观看国产高清视频 | 亚洲精品美女久久17c | av片一区二区 | 在线观看蜜桃视频 | 亚洲一区免费在线 | 免费日韩高清 | 国产淫a| 亚洲欧美国产视频 | 天天干天天上 | 国产一级a毛片视频爆浆 | 久久一区国产 | 久久综合加勒比 | 免费在线色| 一级黄色大片在线观看 | 精品不卡视频 | 久久艹精品 | 精品一二区 | 色噜噜在线观看 | 亚洲综合激情 | 97热在线观看 | 五月综合色婷婷 | 一区二区三区电影大全 | 久久永久免费 | 久青草视频 | 亚洲精品午夜久久久 | 日韩免费电影 | www免费网站在线观看 | 日韩大片在线免费观看 | 91精品视频免费看 | 中文字幕av在线不卡 | 尤物97国产精品久久精品国产 | 成人全视频免费观看在线看 | 98久久| 日本中文字幕视频 | 五月天亚洲激情 | 国产精品色视频 | 少妇性色午夜淫片aaaze | 天天色棕合合合合合合 | 国产成人精品av久久 | 中文av字幕在线观看 | www.久热| 在线视频欧美精品 | 69视频永久免费观看 | japanesexxxhd奶水 国产一区二区在线免费观看 | 伊人久久五月天 | 欧美日韩一区二区三区在线免费观看 | 日韩精品字幕 | 99视频在线免费看 | 久久综合色播五月 | 中文字幕 国产精品 | 狠狠色噜噜狠狠狠狠2021天天 | 日韩中文字幕网站 | 久久男女视频 | 香蕉成人在线视频 | 久久综合电影 | 在线观看精品黄av片免费 | 亚洲精品免费看 | 久久视频这里有久久精品视频11 | 欧美日韩一级久久久久久免费看 | 激情深爱五月 | 日日日视频 | www.色午夜,com | 波多野结衣资源 | 欧美性极品xxxx做受 | 久久激情视频 久久 | 色姑娘综合网 | 日本在线观看一区二区三区 | 欧美a在线看| 亚洲在线国产 | 国产成人一区二区三区在线观看 | 波多野结衣在线中文字幕 | 狠狠狠狠狠狠干 | 久久国产精品第一页 | 天天天天天天天天操 | 久久99爱视频 | 亚洲jizzjizz日本少妇 | 色婷婷成人网 | 精品国产免费看 | 国产精品久久久久久影院 | 色综合久久中文综合久久牛 | 国产亚洲人成网站在线观看 | 日韩一区精品 | 人人澡人人爱 | 亚洲精品一区中文字幕乱码 | 三级av在线免费观看 | 人人dvd| 国产成人精品电影久久久 | 国产精品一区二区久久久久 | 特级西西444www高清大视频 | 黄色免费av | 在线导航av| 色婷婷久久一区二区 | 精品国产乱码久久久久 | 在线精品视频在线观看高清 | 久久99国产综合精品 | 欧美做受69 | 精品 一区 在线 | 天天操夜 | 色视频网站在线 | 国产黄色理论片 | 国产亚洲aⅴaaaaaa毛片 | 久草在线视频免费资源观看 | 中文字幕一区二区三区四区 | 久草在线免费资源 | 久久一区二区三区超碰国产精品 | 日韩中文字幕亚洲一区二区va在线 | 日韩精品亚洲专区在线观看 | 免费看的国产视频网站 | 五月婷婷视频在线观看 | 国产精品av一区二区 | 91成人免费看片 | 久久久久久久国产精品视频 | 91精品国产麻豆 | 久久a国产 | 最新国产精品亚洲 | 99久久99久久精品国产片果冰 | 欧美精品一区二区性色 | 日韩免费 | 国产一区二区在线免费 | 91精品亚洲影视在线观看 | 久久久亚洲电影 | 500部大龄熟乱视频使用方法 | av性网站 | 91精品国产99久久久久久红楼 | 久久成人亚洲欧美电影 | 天堂网一区二区三区 | 久久亚洲欧美日韩精品专区 | www国产亚洲精品久久麻豆 | 国产成人精品女人久久久 | av网站播放 | 精品久久久久久亚洲综合网站 | 91在线视频网址 | www.久久视频 | 国产精品免费不卡 | 日韩乱码在线 | 国产高清综合 | 美女在线观看av | 日韩免费在线观看 | 久久高清国产视频 | 夜夜操网 | 国产一区二区午夜 | 国产亚洲成人网 | 日日摸日日爽 | 视频一区二区在线 | 婷婷综合伊人 | 色网av | 国产探花 | 九九视频这里只有精品 | 久久99精品国产91久久来源 | 中文字幕在线国产 | 成人免费视频在线观看 | 免费在线观看日韩视频 | 午夜精品一区二区三区免费视频 | 精品亚洲一区二区三区 | 99在线播放 | 久久久国产在线视频 | 亚洲一区二区视频在线播放 | 婷婷六月天丁香 | 欧美日韩国产一二 | 国产精品日韩在线 | 久久国产亚洲精品 | 日韩免费电影一区二区 | 99免费在线观看视频 | 成人少妇影院yyyy | 亚洲精品视频在 | 天天天天天天天天操 | 久久精品视频4 | 特黄特黄的视频 | 91中文在线视频 | 日本中文在线 | 9色在线视频 | 98久久 | 日韩中文字幕免费电影 | 国产91九色视频 | 色婷婷播放 | 国产亚洲情侣一区二区无 | 玖草影院 | 一级久久精品 | 亚洲成年人在线播放 | 色综合久久99 | 亚洲成人xxx | 亚洲视频一区二区三区在线观看 | а天堂中文最新一区二区三区 | 亚洲涩涩涩涩涩涩 | 久久精品视频日本 | 免费看三级 | a级片网站| 久保带人 | 天天操天天摸天天干 | 日韩a级黄色 | 毛片网在线播放 | 国产999久久久 | 久久在线| 亚洲综合激情小说 | 成人小视频在线免费观看 | 一级特黄av | 国产日韩在线一区 | 91精品国产福利在线观看 | 午夜精品福利一区二区三区蜜桃 | 亚州国产精品视频 | 国产精品久久久久久久午夜片 | 天天艹日日干 | 欧美日韩视频在线 | 2021久久 | 五月婷婷丁香 | 久久久国产精品一区二区三区 | 看片网站黄 | 日韩中文字幕亚洲一区二区va在线 | 亚洲成人高清在线 | 国产a级片免费观看 | 久影院 | 国产一级免费电影 | 欧美二区在线播放 | 深夜免费福利在线 | 超碰97国产精品人人cao | 亚洲国产美女精品久久久久∴ | 91九色成人 | www.狠狠插.com | 特级xxxxx欧美| 久久成人欧美 | 天天激情综合 | 成人黄色av免费在线观看 | 中文字幕在线视频一区 | 中文字幕一区二区三区乱码不卡 | 国产精品人人做人人爽人人添 | 亚洲精品视频在线播放 | 超碰97在线资源 | 日本黄色免费看 | 久久99免费视频 | 国产成人一级 | 日韩精品一区二区三区在线播放 | 久久97久久| 黄色a视频免费 | 99r国产精品| 亚洲精品在线看 | 在线免费黄 | 欧美日韩亚洲在线 | 色在线国产 | 福利视频导航网址 | 天天综合网天天 | 国产91区| 玖玖玖影院 | 天天透天天插 | 日韩婷婷| 在线观看免费国产小视频 | 毛片在线播放网址 | 亚洲国产中文字幕 | 成人久久久久久久久久 | 午夜电影一区 | 国产精品免费久久久久久 | 96久久 | 青青草国产精品 | 欧美老人xxxx18 | 久久艹影院 | 精品国产一区二区三区四区vr | 成人一区二区在线 | 免费观看视频的网站 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产福利一区二区三区在线观看 | 99久久精 | 国产99久久久国产精品 | 国产视频精品网 | 亚洲国产成人精品在线 | 一级免费av | 日韩中文字幕免费视频 | 日韩专区在线观看 | 亚洲日日射 | 中文字幕久久精品亚洲乱码 | 999热线在线观看 | 日韩高清在线不卡 | 国内精品视频在线 | 久草在线在线精品观看 | 最近最新中文字幕视频 | 69精品人人人人 | 亚洲欧美日韩国产一区二区 | 操操操日日日 | 天天综合网天天综合色 | 91人人澡人人爽 | 天天做综合网 | 91麻豆.com | 亚洲精品国产视频 | 97免费公开视频 | 国产精品毛片一区二区 | 婷婷精品| 久久久www| 久久久91精品国产一区二区精品 | 超碰99在线 | 久久久www成人免费精品张筱雨 | 亚洲一区 影院 | 国产一区二区在线免费视频 | 免费看国产曰批40分钟 | 久产久精国产品 | 91亚洲精品在线观看 | 日韩国产精品久久久久久亚洲 | 九九综合九九 | 在线色视频小说 | 欧美激情视频一区二区三区免费 | 国产精品麻| 国产精品久久久av久久久 | 国产一二区在线观看 | 欧美性生交大片免网 | 久久婷婷综合激情 | 91黄视频在线 | 免费网站看v片在线a | 国产91成人 | 黄色电影在线免费观看 | 日韩| 欧美日本不卡视频 | 国产精品爽爽爽 | 在线免费观看视频 | 日本福利视频在线 | 亚洲综合欧美日韩狠狠色 | 亚洲一区二区视频在线播放 | 午夜在线观看 | 麻豆传媒视频在线免费观看 | 在线观看国产一区二区 | 国产精品自产拍在线观看蜜 | 久久不射电影院 | 一区二区三区精品久久久 | 国产在线不卡视频 | 免费视频99 | 亚洲人成免费 | 热re99久久精品国产99热 | 国产精品一区二区三区99 | 色香蕉网 | 日韩av电影国产 | 婷婷 综合 色 | 91av亚洲| 成年性视频 | 成人黄色在线观看视频 | 亚洲国产69| 国产精品一区二区吃奶在线观看 | 伊人天堂久久 | 久久字幕| 国产高清在线永久 | 中文字幕精品www乱入免费视频 | 国内精品99 | 国产精品久久久久婷婷 | 色搞搞| 蜜臀av.com | 久艹视频免费观看 | 免费成人在线网站 | 成人av网站在线观看 | 成人午夜影视 | 9在线观看免费高清完整版在线观看明 | 三级av中文字幕 | av福利在线 | 久久影院精品 | 欧美激情视频在线免费观看 | 亚洲国产精品99久久久久久久久 | 成人黄色大片网站 | 中文亚洲欧美日韩 | 99re在线视频观看 | 亚洲精品国产精品乱码在线观看 | 日本精品视频在线播放 | 久久精品亚洲国产 | 国产精品乱码久久 | 国产视频精品久久 | 成人免费在线视频 | 在线之家免费在线观看电影 | 国产精品va视频 | av片子在线观看 | 在线国产能看的 | 色91在线| 福利视频入口 | www视频在线播放 | 美女在线观看av | 精品伦理一区二区三区 | 91亚洲精品久久久久图片蜜桃 | 色婷婷综合久久久久 | 人人干天天射 | 丁香六月婷婷开心 | 精品中文字幕在线 | 在线网站黄 | 久久久国产精品网站 | 五月天免费网站 | 日韩在线激情 | 91欧美在线 | 国内偷拍精品视频 | 一本一道波多野毛片中文在线 | 毛片播放网站 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 高清在线一区二区 | 欧美国产日韩激情 | 国产精品观看视频 | 亚洲精品乱码久久久久 | 91精品影视 | av短片在线观看 | 天堂激情网| 国产98色在线 | 日韩 | 精品96久久久久久中文字幕无 | 日韩天天操 | 在线免费中文字幕 | 成年人黄色免费视频 | 香蕉色综合 | 精品一区二三区 | 久草免费电影 | 久久亚洲私人国产精品va | 99热精品国产 | 国产精品理论片在线观看 | av免费看在线| 国产精品手机视频 | 国产精品毛片久久久久久久久久99999999 | 国产日韩欧美在线观看 | 在线电影a | a在线观看免费视频 | 精品视频免费在线 | 久草爱视频 | 国产成人专区 | 国产视频一二三 | 成人蜜桃视频 | 成人全视频免费观看在线看 | 999久久国精品免费观看网站 | av福利在线免费观看 | 国产成人99av超碰超爽 | 免费高清国产 | 久久麻豆视频 | 成人av电影免费在线观看 | 99久久精品国产免费看不卡 | 国产不卡视频 | 视频1区2区 | 日韩精品一区在线观看 | 91热爆在线观看 | 天天爱天天操 | 99免费视频 | 国产日韩欧美视频 | 欧美爽爽爽 | 成人在线免费观看网站 | 亚洲综合色站 | 深夜免费福利在线 | 午夜美女福利直播 | 成人一级黄色片 | 黄网在线免费观看 | 99久久久久久国产精品 | 园产精品久久久久久久7电影 | 一区二区三区在线免费播放 | 99热高清 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 日韩欧美区 | 狠狠色婷婷丁香六月 | 国产露脸91国语对白 | 国产一区 在线播放 | 综合中文字幕 | 四虎影视精品永久在线观看 | 福利精品在线 | 黄网站app在线观看免费视频 | 免费看av在线| 美女视频黄色免费 | 免费av片在线 | 在线看v片 | 超碰午夜| 99国产精品久久久久久久久久 | 奇米影视四色8888 | 日韩在线观看一区二区三区 | 国内精品久久久久久久久久久 | 国产精品观看在线亚洲人成网 | 久久66热这里只有精品 | 欧美精品二区 | 日韩av免费在线电影 | 国产精品一区二区三区免费视频 | 日韩在线观看a | 91在线观看欧美日韩 | 亚洲日本va午夜在线影院 | 亚洲国产一区二区精品专区 | 中文字幕乱偷在线 | 欧美激情视频一区二区三区免费 | 日韩精选在线 | 91亚洲国产成人 | 在线成人免费电影 | 久久综合精品国产一区二区三区 | 999久久久免费视频 午夜国产在线观看 | 蜜臀精品久久久久久蜜臀 | 国产黄视频在线观看 | 2023天天干 | 麻豆精品视频在线 | 国产精品 视频 | 国产成人三级一区二区在线观看一 | 在线观看黄污 | 91av免费看| 国产精品手机在线观看 | 国产亚洲高清视频 | 国产成人精品一二三区 | 中文亚洲欧美日韩 | www五月 | 可以免费看av | 天堂成人在线 | 国产精成人品免费观看 | 午夜精品一区二区三区视频免费看 | 久久av免费| 免费黄色网址网站 | 五月婷婷av | 国产一区在线观看免费 | 日韩在线视频线视频免费网站 | 国产色女| 精品专区一区二区 | 国产成人av网址 | 国产高清久久久 | 在线观看免费日韩 | 欧美日韩在线视频免费 | 玖玖在线播放 | 久久亚洲在线 | 成人教育av | 成人h电影 | 中文字幕二区 | 亚洲国产成人在线 | 超碰97人人在线 | 中文字幕91在线 | 成人蜜桃网 | www.操.com| 日日躁天天躁 | 久久婷婷国产 | 精品免费国产一区二区三区四区 | 狠狠干美女 | 91在线观看欧美日韩 | 欧美极品一区二区三区 | 一级片免费观看视频 | a黄色一级 | 国产精品情侣视频 | 黄色免费网站下载 | 亚洲精品高清视频在线观看 | 色婷婷www| 国产一区免费在线观看 | 久久精品小视频 | 婷婷激情在线观看 | 国产成人精品电影久久久 | 久久久久黄色 | 久久天天躁夜夜躁狠狠躁2022 | 香蕉网在线观看 | 婷婷六月丁香激情 | 天天天天综合 | 91一区二区三区久久久久国产乱 | 超碰在线人人艹 | 国产黄免费在线观看 | 一区二区亚洲精品 | 久久久久久高潮国产精品视 | 成人av教育| 亚洲aⅴ免费在线观看 | 国内精品久久久久影院日本资源 | 深爱激情婷婷网 | 在线观看视频黄 | 日本天天操 | 欧美日本不卡视频 | 色婷婷丁香 | 美女很黄免费网站 | 黄免费在线观看 | 又污又黄的网站 | 亚洲国产网站 | 国产一区二区三精品久久久无广告 | 91麻豆产精品久久久久久 | 精品一区二区综合 | 黄色小说免费观看 | 亚洲国产精品人久久电影 | 日韩中文字幕在线不卡 | 麻豆视频在线免费看 | av在线电影播放 | 香蕉91视频 | 少妇搡bbbb搡bbb搡aa | 色在线免费观看 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 国产伦精品一区二区三区高清 | 99久久超碰中文字幕伊人 | 亚洲精品视频在线观看视频 | 日日操日日插 | 午夜视频在线观看网站 | 五月花激情 | 欧美精品在线一区二区 | 日本三级人妇 | 欧美日韩国产一区二区三区在线观看 | 97国产精品亚洲精品 | 最近中文字幕在线 | 色偷偷av男人天堂 | 久久视频国产精品免费视频在线 | 9999国产精品 | 丁香婷婷社区 | 91九色蝌蚪视频 | 亚洲精品一区二区在线观看 | 日韩成人不卡 | 日韩欧美一区二区三区在线 | 久久久久亚洲天堂 | 久草在线官网 | 欧美福利片在线观看 | 一级片免费观看视频 | 婷婷六月天丁香 | 黄色毛片视频 | 欧美精彩视频 | 伊人五月在线 | 日日操夜夜操狠狠操 | 91丨九色丨国产在线观看 | 天天躁日日躁狠狠 | 国产91亚洲 | 国产精品一区二区你懂的 | 91高清完整版在线观看 | 看毛片的网址 | 人人草在线视频 | 免费欧美| 毛片3| 亚洲va综合va国产va中文 | 日本久久免费电影 | 蜜臀av夜夜澡人人爽人人桃色 | 99热99re6国产在线播放 | 一级免费av | 中文字幕黄色网 | 国产成人精品午夜在线播放 | 天天骚夜夜操 | 国产亚洲精品久久久久久无几年桃 | 亚洲在线精品视频 | 国产精品18毛片一区二区 | 免费人成在线观看网站 | 日本中文字幕免费观看 | 91精品国产综合久久久久久久 | 麻豆视频在线免费 | 91亚洲精品乱码久久久久久蜜桃 | 久久伊99综合婷婷久久伊 | 国产精品xxxx18a99 | 99久久综合国产精品二区 |