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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多文件断点续传,上传视频自动转MP4和截图,图片格式转换

發布時間:2023/12/8 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多文件断点续传,上传视频自动转MP4和截图,图片格式转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

功能:自己寫的一個組件,根據調用傳過來的的fileType判斷是上傳視頻還是圖片還是音頻。可以選擇多文件上傳,同時也可以暫停,繼續,取消,斷網重連續傳。如果上傳的是視頻,會自動轉為mp4,自動截取一幀圖片。如果上傳的是.tif格式圖片則轉換為png格式(用的ffmpeg插件)。

界面:

前端代碼:

@{ViewBag.Title = "Index";<link rel="stylesheet" href="/Content/gdsm/vendor/bootstrap-3.3.7/css/bootstrap.min.css"><link rel="stylesheet" href="/Content/gdsm/vendor/bootstrap-datepicker-1.6.4-dist/css/bootstrap-datepicker3.min.css"><link rel="stylesheet" href="/Content/gdsm/css/common.css"><link rel="stylesheet" href="/Content/gdsm/css/admin.css"><script src="/Content/gdsm/vendor/jquery-3.3.1/jquery-3.3.1.min.js"></script><script src="/Content/gdsm/vendor/bootstrap-3.3.7/js/bootstrap.min.js"></script><script src="/Content/gdsm/vendor/layer-v3.1.1/layer/layer.js"></script><script src="/Content/gdsm/vendor/jquery.nicescroll-3.7.6/jquery.nicescroll.min.js"></script><script type="text/javascript" src="~/Content/gdsm/vendor/bootstrap-datepicker-1.6.4-dist/js/bootstrap-datepicker.min.js"></script><script type="text/javascript" src="~/Content/gdsm/vendor/bootstrap-datepicker-1.6.4-dist/locales/bootstrap-datepicker.zh-CN.min.js"></script><script src="/Content/gdsm/js/common.js"></script>ViewData["datacategory"] = ViewContext.RouteData.Values["categoryData"];string fileType = ViewContext.RouteData.Values["categroy"].ToString(); }<div id="addShapeContent"><div class="panel"><div class="panel-heading"><h3 class="panel-title">文件上傳</h3></div><div class="panel-body shape-upload p30"><div class="upload-box item">@switch (fileType){case "image":<div class="upload-btn"><input type="file" name="uploadFile" multiple="multiple" accept=".jpg,.jpeg,.png,.gif,.bmp,.tif">選擇文件</div><p class="file-desc">(圖片支持jpg, jpeg, png, gif, bmp, tif;大小不超過5M,推薦尺寸:4:3,16:9)</p>break;case "media":<div class="upload-btn"><input type="file" name="uploadFile" multiple="multiple" accept=".mp4,.flv,.avi,.wmv">選擇文件</div><p class="file-desc">(視頻支持mp4, flv, wmv, avi;大小不超過20M)</p>break;case "music":<div class="upload-btn"><input type="file" name="uploadFile" multiple="multiple" accept=".mp3">選擇文件</div><p class="file-desc">(音頻支持mp3大小不超過20M)</p>break;case "shape":<div class="upload-btn"><input type="file" name="uploadFile" multiple="multiple" accept=".jpg,.jpeg,.png,.gif,.bmp,.tif">選擇文件</div><p class="file-desc">(圖片支持jpg, jpeg, png, gif, bmp, tif;大小不超過5M,推薦尺寸:4:3,16:9)</p>break;}</div><div class="item"><div class="control-label">添加至</div><div class="control"><select id="sltcategory" class="form-control">@if (ViewData["datacategory"] != null){foreach (var item in ViewData["datacategory"] as List<GDSMModel.JHResCategory>){<option value="@item.res_category_id">@item.res_category_name</option>}}</select></div></div><div class="item"><div id="prolabel" class="control-label" style="display:none">正在上傳中</div><div class="control"><ul id="proul" class="progress-lists mt34" style="height:135px; overflow-y:auto;"></ul></div></div></div><div class="panel-footer"><button type="button" class="btn btn-lucency js-cancle pull-right ml20">關閉</button></div></div></div><div id="progressbar" style="display:none"><li class="progress-detail" id="****"><span class="name" title="####" style="height:30px;">####</span><div class="progress progress-striped active"><div class="progress-bar progress-bar-success" role="progressbar"aria-valuenow="60" aria-valuemin="0" aria-valuemax="100"style="width:0%;"></div></div><span class="num" style="width:30px;">0%</span><label class="currIndex" style="display:none">0</label><button class="btn btn-blue btn-sm" onclick="PauseAndContinue(this);" style="margin-right:10px">暫停</button><button class="btn btn-blue btn-sm" onclick="Cancle(this);">取消</button></li></div><script type="text/javascript">//用于存儲file信息var filearr = new Array();//離線狀態下的fileIDvar offlinefileids = new Array();$(function () {//數組加個刪除功能Array.prototype.remove = function (val) {var index = this.indexOf(val);if (index > -1) {this.splice(index, 1);}};//監聽網絡已連接事件window.addEventListener('online', Online);//上傳功能$("input[type='file']").change(function () {var filelists = this.files;//切換下標簽類型,防止上傳同一文件OnChange觸發不了$(this).attr("type", "text");$(this).attr("type", "file");for (var i = 0; i < filelists.length; i++) {if (filelists == undefined) {layer.open({title: '錯誤提示', content: '您的瀏覽器暫不支持上傳文件,建議使用IE9以上、FireFox、Chrome、360極速模式等瀏覽器。'});return;}if (filelists.length < 1) {layer.open({title: '錯誤提示', content: '請選擇文件。'});return;}//驗證格式類型var fileSplit = filelists[i].name.toLowerCase().split(".");var fileFormat = fileSplit[fileSplit.length - 1]; //獲得文件結尾的類型如 zip rar 這種寫法確保是最后的if (validate(fileFormat, filelists[i].name)) {$("#prolabel").show();var fileid = uuid();//生成一個文件IDvar file = filelists[i];var totalSize = filelists[i].size;//文件大小var blockSize = 1024 * 1024;//塊大小var blockCount = Math.ceil(totalSize / blockSize);//總塊數//存儲file信息var data = new fileData(file, totalSize, blockCount, blockSize);filearr[fileid] = data;//存儲執行上傳中的文件idofflinefileids.push(fileid);//獲取服務器上最近上傳的文件塊序號//currIndex = 0;//生成進度條var progressbar = $("#progressbar").html();//替換名稱progressbar = progressbar.replace(new RegExp("####", 'g'), file.name);//替換IDprogressbar = progressbar.replace("****", fileid);$("ul.progress-lists").append(progressbar);//開始分塊上傳文件UploadPost(fileid, file, totalSize, blockCount, blockSize);}}});});//上傳文件function UploadPost(fileid, file, totalSize, blockCount, blockSize) {var queryid = "#" + fileid;var state = $(queryid).find("button[style]").html();//獲取暫停繼續的狀態var currIndex = parseInt($(queryid).find("label.currIndex").html());//獲取文件塊數var category = $("#sltcategory").val();if (!(state == "暫停")) {if ($(queryid).find("label.currIndex").html() == "-1") {//取消上傳,刪除文件塊CancleAjax(queryid, fileid);}return; //暫停}try {var start = currIndex * blockSize; //文件流開始位置var end = Math.min(totalSize, start + blockSize); //文件流結束位置var block = file.slice(start, end); //截取下來的文件流塊信息//組裝提交表單信息var formDataBlock = new FormData();formDataBlock.append('fileName', file.name);//文件名formDataBlock.append('blockCount', blockCount);//總塊數formDataBlock.append('currIndex', currIndex);//當前上傳的塊下標formDataBlock.append('uploadId', fileid);//上傳編號formDataBlock.append('fileType', "@fileType");//文件類別formDataBlock.append('categoryType', category)//分類formDataBlock.append('totalSize', totalSize)//文件大小,用于驗證formDataBlock.append('data', block);//提交服務器$.ajax({url: '/Admin/FileUpload/Upload',type: 'post',data: formDataBlock,processData: false,contentType: false,success: function (res) {block = null;if ($(queryid).find("label.currIndex").html() == "-1") {//取消上傳,刪除文件塊CancleAjax(queryid, fileid);}else if (res.Code === 1) {//設置進度條currIndex++;var num = Math.round((currIndex) / blockCount * 100) + "%";$(queryid).find("span.num").html(num);$(queryid).find("div.progress-bar").css("width", num);//如果當前文件塊不是最后一個,遞歸上傳其他文件塊信息if (currIndex < blockCount) {$(queryid).find("label.currIndex").html(currIndex);UploadPost(fileid, file, totalSize, blockCount, blockSize);}else {//上傳成功$(queryid).fadeOut(2000, function () {$(this).remove();if ($("#proul").children().length <= 1)$("#prolabel").fadeOut("fast");});offlinefileids.remove(fileid);filearr[fileid] = "";}}else {layer.open({title: '錯誤提示', content: res.Msg});}}, error: function (e) {if (!navigator.onLine) {layer.open({title: '錯誤提示', content: '網絡連接已斷開。'});}else if (e.status == 0) {UploadPost(fileid, file, totalSize, blockCount, blockSize);}else {layer.open({title: '錯誤提示', content: e.responseText});}}});} catch (e) {alert(e);}}//暫停function PauseAndContinue(obj) {var fileid = $(obj).parent().attr("id");if ($(obj).html() == "暫停") {$(obj).html("繼續");offlinefileids.remove(fileid);}else {$(obj).html("暫停");var fdata = filearr[fileid];offlinefileids.push(fileid);UploadPost(fileid, fdata.file, fdata.totalSize, fdata.blockCount, fdata.blockSize);}}//取消function Cancle(obj) {$(obj).parent().find("label.currIndex").html("-1");}//取消上傳,刪除文件塊function CancleAjax(queryid, fileid) {$.ajax({url: '/Admin/FileUpload/Cancle?id=' + fileid,datatype: "json",type: "GET",async: false,success: function () {$(queryid).find("span.num").html("0%");$(queryid).find("div.progress-bar").css("width", 0);$(queryid).fadeOut(2000, function () {$(this).remove();if ($("#proul").children().length <= 1)$("#prolabel").fadeOut("fast");});}});}//網絡連接上繼續執行上傳function Online() {for (var i = 0; i < offlinefileids.length; i++) {var fileid = offlinefileids[i];var fdata = filearr[fileid];UploadPost(fileid, fdata.file, fdata.totalSize, fdata.blockCount, fdata.blockSize);}}//驗證function validate(fileType,filename){var type = "@fileType";var result = true;switch (type) {case "image":if (fileType != "jpg" && fileType != "jpeg" && fileType != "png" && fileType != "gif" && fileType != "bmp" && fileType != "tif" && fileType != "") {layer.open({title: '格式錯誤', content: filename + '的格式錯誤'}); result = false;}break;case "shape":if (fileType != "jpg" && fileType != "jpeg" && fileType != "png" && fileType != "gif" && fileType != "bmp" && fileType != "tif" && fileType != "") {layer.open({title: '格式錯誤', content: filename + '的格式錯誤'});result = false;}break;case "music":if (fileType != "mp3") {layer.open({title: '格式錯誤', content: filename + '的格式錯誤'});result = false;}break;case "media":if (fileType != "mp4" && fileType != "flv" && fileType != "avi" && fileType != "wmv") {layer.open({title: '格式錯誤', content: filename + '的格式錯誤'});result = false;}break;}return result;}//生成GUIDfunction uuid() {var s = [];var hexDigits = "0123456789abcdef";for (var i = 0; i < 36; i++) {s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);}s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01s[8] = s[13] = s[18] = s[23] = "-";var uuid = s.join("");//return uuid;return uuid.replace(new RegExp("-", 'g'), "");}//用于存儲file信息function fileData(file, totalSize, blockCount, blockSize) {this.file = file;this.totalSize = totalSize;this.blockCount = blockCount;this.blockSize = blockSize;}</script>

后端代碼:

using GDSMBLL; using GDSMCommon; using GDSMModel; using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Web; using System.Web.Mvc;namespace GDSMPlateForm.Areas.Admin.Controllers {public class FileUploadController : Controller{public string oriVideoPathc = "";public string outVideoPathc = "";public string ffmpegPathc = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/ffmpeg/ffmpeg.exe");// GET: Admin/FileUploadpublic ActionResult Index(){return View();}[Route][HttpPost]public ActionResult Upload(string uploadId, int blockCount, int currIndex, string fileName,string fileType,string categoryType,int totalSize){try{var file = Request.Files[0];//文件格式string format = Path.GetExtension(fileName);//路徑MD5 md5 = new MD5CryptoServiceProvider();string cryptStr = "";#region 校驗ValidateHelper vh = new ValidateHelper();if (file == null)return Json(new UploadResult { Msg = "請選擇文件" }, JsonRequestBehavior.AllowGet);if (blockCount < 1)return Json(new UploadResult { Msg = "塊數量不能小于1" }, JsonRequestBehavior.AllowGet);if (currIndex < 0)return Json(new UploadResult { Msg = "塊數量小于0" }, JsonRequestBehavior.AllowGet);if (string.IsNullOrWhiteSpace(uploadId))return Json(new UploadResult { Msg = "上傳編號為空" }, JsonRequestBehavior.AllowGet);if (!vh.IsValidateFileExtension(fileName)){return Json(new UploadResult { Msg = "文件格式不支持" }, JsonRequestBehavior.AllowGet);}if (totalSize > vh.GetResTypeSize(fileType)){return Json(new UploadResult { Msg = "文件超過指定大小" }, JsonRequestBehavior.AllowGet);}var result = new UploadResult { Code = 1, Msg = "上傳成功~" };result.UploadID = uploadId;#endregion#region ==塊處理==string relativePath = "/upload";if (!string.IsNullOrEmpty(fileType) && !string.IsNullOrEmpty(categoryType)){relativePath = "/Content/resource/" + fileType + "/" + categoryType + "/" + uploadId;}string dir = System.Web.HttpContext.Current.Server.MapPath("~" + relativePath);if (Directory.Exists(dir) == false){Directory.CreateDirectory(dir);}//塊文件名稱var blockName = $"{uploadId}_{currIndex}.block";//塊文件目錄路徑var blockPath = Path.Combine(dir, "block");//塊文件目錄對象DirectoryInfo blockDirectoryInfo = Directory.Exists(blockPath) ? new DirectoryInfo(blockPath) : Directory.CreateDirectory(blockPath);//塊文件完整路徑var blockFullPath = Path.Combine(blockPath, blockName);if (System.IO.File.Exists(blockFullPath)){//塊已上傳,不做失敗處理return Json(new UploadResult { Code = 1, Msg = "該文件塊已上傳~" }, JsonRequestBehavior.AllowGet);}file.SaveAs(blockFullPath);#endregion#region ==塊合并處理==//判斷塊文件是否已將上傳完,上傳完合并文件if (blockDirectoryInfo.GetFiles().Count().Equals(blockCount)){//var timestamp = DateTime.Now.ToString("yyyMMdd");string fileOldNmae = fileName;fileName = uploadId + format;//var filePath = Path.Combine(dir, timestamp);var filePath = dir;if (!Directory.Exists(filePath)){Directory.CreateDirectory(filePath);}//完整文件存儲路徑var fileFullPath = Path.Combine(filePath, fileName);//讀取每個文件塊寫入文件流using (var fs = new FileStream(fileFullPath, FileMode.Create)){for (var i = 0; i < blockCount; i++){var path = Path.Combine(blockPath, $"{uploadId}_{i}.block");var bytes = System.IO.File.ReadAllBytes(path);fs.Write(bytes, 0, bytes.Length);}//刪除所有文件塊路徑Directory.Delete(blockPath, true);}#region md5加密FileStream fileStream = new FileStream(fileFullPath, FileMode.Open);//對面文件流進行md5加密byte[] cryptBytes = md5.ComputeHash(fileStream);//加密的二進制轉為string類型cryptStr = Convert.ToBase64String(cryptBytes);fileStream.Close();#endregionresult.FileInfo = new UploadFileInfo{FileName = fileName,FilePath = fileFullPath};if (fileType == "media"){outVideoPathc = filePath + "\\" + uploadId + ".mp4";//轉mp4格式路徑oriVideoPathc = fileFullPath;//原視頻路徑string thubHeight = "150";string frameIndex = "1";string thubWidth = "200";string thubImagePath = filePath + "\\" + uploadId + ".png";FileConvertUtil.MediaExstractImage(ffmpegPathc, oriVideoPathc, thubHeight, frameIndex, thubWidth, thubImagePath);format = ".mp4";fileName = uploadId + format;System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(ConvertMp4WithoutTxt));thread.Start();}else if (fileType == "image" || fileType == "shape"){if (format == ".tif" || format == ".TIF"){format = ".png";fileName = uploadId + format;outVideoPathc = filePath + "\\" + uploadId + ".png";//轉mp4格式路徑oriVideoPathc = fileFullPath;//原視頻路徑System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(ConvertImageFormat));thread.Start();}}#region 信息存入數據庫JHResouce jhResouce = new JHResouce();jhResouce.file_id = Guid.NewGuid().ToString();jhResouce.file_name = fileName;jhResouce.file_oldname = fileOldNmae;jhResouce.file_path = Path.Combine(relativePath, fileName).Replace("\\", "/");jhResouce.res_category_id = categoryType;jhResouce.create_user_id = "";jhResouce.create_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");jhResouce.md5 = cryptStr;if (fileType == "media"){jhResouce.file_type = Path.Combine(relativePath, uploadId + ".png").Replace("\\", "/");}else{jhResouce.file_type = format;}HttpCookie cookieid = Request.Cookies["user_id"];if (cookieid != null){if (cookieid.Value != ""){jhResouce.create_user_id = cookieid.Value;}}JHResouceBL hResouceBL = new JHResouceBL();hResouceBL.Insert(jhResouce, GetTableName(fileType));new JHLogBL().Insert(LogType.add, fileType + "添加操作,文件上傳");#endregion}#endregionreturn Json(result);}catch (Exception ex){throw;}}/// <summary>/// 上傳過程中取消上傳,刪除相應文件塊/// </summary>/// <param name="id"></param>/// <returns></returns>[HttpGet]public int Cancle(string id){try{//獲取文件塊路徑,刪除文件塊string dir = System.Web.HttpContext.Current.Server.MapPath("~/upload");var blockPath = Path.Combine(dir, id);Directory.Delete(blockPath, true);return 1;}catch{return 0;}}/// <summary>/// 視頻轉換為mp4/// </summary>public void ConvertMp4WithoutTxt(){Process p = new Process();//建立外部調用線程p.StartInfo.FileName = ffmpegPathc; //System.Windows.Forms.Application.StartupPath + "\\ffmpeg.exe";//要調用外部程序的絕對路徑// string StrArg = "-i concat:\"" + StrMP4A + "|" + StrMP4B + "\" -vcodec copy -acodec copy " + StrOutMp4Path + " -y";//string StrArg = "- i concat: \"" + StrMP4A + "|" + StrMP4B + "\" - vcodec copy - acodec copy "+ StrOutMp4Path + " -y";// string StrArg = "-i D:\\123.flv -i D:\\water.png -filter_complex \"overlay=10:10\" -b 1024k -acodec copy";// string StrArg = "-i "+StrMP4A+" -acodec copy -vcodec copy -f flv C:\\dis\\test1.mp4";// string StrArg = "-i \"" + StrMP4A + "\" -qscale 6 \"" + StrOutMp4Path + "\"";// "-i " + StrMP4A + " -y -vcodec h264 -b 1500 "+StrOutMp4Path ;string StrArg = "-i " + oriVideoPathc + " -c:v libx264 -strict -2 " + outVideoPathc;p.StartInfo.Arguments = StrArg;p.StartInfo.UseShellExecute = false;//不使用操作系統外殼程序啟動線程(一定為FALSE,詳細的請看MSDN)p.StartInfo.RedirectStandardError = true;//把外部程序錯誤輸出寫到StandardError流中(這個一定要注意,FFMPEG的所有輸出信息,都為錯誤輸出流,用StandardOutput是捕獲不到任何消息的...這是我耗費了2個多月得出來的經驗...mencoder就是用standardOutput來捕獲的)p.StartInfo.CreateNoWindow = true;//不創建進程窗口p.ErrorDataReceived += new DataReceivedEventHandler(Output);//外部程序(這里是FFMPEG)輸出流時候產生的事件,這里是把流的處理過程轉移到下面的方法中,詳細請查閱MSDNp.Start();//啟動線程p.BeginErrorReadLine();//開始異步讀取p.WaitForExit();//阻塞等待進程結束p.Close();//關閉進程p.Dispose();//釋放資源LogHelper.WriteLog("視頻轉換成功:" + outVideoPathc);LogHelper.WriteLog("開始刪除原文件:" + oriVideoPathc);System.IO.File.Delete(oriVideoPathc);LogHelper.WriteLog("原文件刪除成功");}/// <summary>/// 圖片格式轉換/// </summary>public void ConvertImageFormat(){Process p = new Process();//建立外部調用線程p.StartInfo.FileName = ffmpegPathc; //System.Windows.Forms.Application.StartupPath + "\\ffmpeg.exe";//要調用外部程序的絕對路徑// string StrArg = "-i concat:\"" + StrMP4A + "|" + StrMP4B + "\" -vcodec copy -acodec copy " + StrOutMp4Path + " -y";//string StrArg = "- i concat: \"" + StrMP4A + "|" + StrMP4B + "\" - vcodec copy - acodec copy "+ StrOutMp4Path + " -y";// string StrArg = "-i D:\\123.flv -i D:\\water.png -filter_complex \"overlay=10:10\" -b 1024k -acodec copy";// string StrArg = "-i "+StrMP4A+" -acodec copy -vcodec copy -f flv C:\\dis\\test1.mp4";// string StrArg = "-i \"" + StrMP4A + "\" -qscale 6 \"" + StrOutMp4Path + "\"";// "-i " + StrMP4A + " -y -vcodec h264 -b 1500 "+StrOutMp4Path ;string StrArg = "-i " + oriVideoPathc + " " + outVideoPathc;p.StartInfo.Arguments = StrArg;p.StartInfo.UseShellExecute = false;//不使用操作系統外殼程序啟動線程(一定為FALSE,詳細的請看MSDN)p.StartInfo.RedirectStandardError = true;//把外部程序錯誤輸出寫到StandardError流中(這個一定要注意,FFMPEG的所有輸出信息,都為錯誤輸出流,用StandardOutput是捕獲不到任何消息的...這是我耗費了2個多月得出來的經驗...mencoder就是用standardOutput來捕獲的)p.StartInfo.CreateNoWindow = true;//不創建進程窗口p.ErrorDataReceived += new DataReceivedEventHandler(Output);//外部程序(這里是FFMPEG)輸出流時候產生的事件,這里是把流的處理過程轉移到下面的方法中,詳細請查閱MSDNp.Start();//啟動線程p.BeginErrorReadLine();//開始異步讀取p.WaitForExit();//阻塞等待進程結束p.Close();//關閉進程p.Dispose();//釋放資源LogHelper.WriteLog("圖片轉換成功:" + outVideoPathc);LogHelper.WriteLog("開始刪除原文件:" + oriVideoPathc);System.IO.File.Delete(oriVideoPathc);LogHelper.WriteLog("原文件刪除成功");}private void Output(object sendProcess, DataReceivedEventArgs output){if (!String.IsNullOrEmpty(output.Data)){}else{//MessageBox.Show("視頻合成失敗");}}/// <summary>/// 根據類型獲取表名/// </summary>/// <param name="stype"></param>/// <returns></returns>private string GetTableName(string stype){string tableName = "";if (stype == "image"){tableName = "h_res_image";}else if (stype == "shape"){tableName = "h_res_shape";}else if (stype == "music"){tableName = "h_res_music";}else if (stype == "media"){tableName = "h_res_media";}return tableName;}/// <summary>/// 獲取文件擴展名/// </summary>/// <param name="fileName"></param>/// <returns></returns>public string GetExtension(string fileName){if (string.IsNullOrWhiteSpace(fileName) || fileName.IndexOf(".") < 0){return string.Empty;}var arr = fileName.Split('.');return arr[arr.Length - 1];}/// <summary>/// 根據類型驗證上傳文件類型/// </summary>/// <param name="stype"></param>/// <returns></returns>private bool IsValidateFileExtension(string fileExtension){string format = System.Configuration.ConfigurationManager.AppSettings["format"].ToString();bool result = false;fileExtension = fileExtension.Replace(".", "");fileExtension = fileExtension.ToLower();if (format.Contains(fileExtension)){result = true;}return result;}}/// <summary>/// 文件上傳結果/// </summary>public class UploadResult{/// <summary>/// 狀態碼 0失敗 1成功/// </summary>public int Code { get; set; }/// <summary>/// 消息/// </summary>public string Msg { get; set; }/// <summary>/// 上傳編號,唯一/// </summary>public string UploadID { get; set; }/// <summary>/// 文件保存信息/// </summary>public UploadFileInfo FileInfo { get; set; }}public class UploadFileInfo{/// <summary>/// 文件保存名稱/// </summary>public string FileName { get; set; }/// <summary>/// 文件保存路徑/// </summary>public string FilePath { get; set; }/// <summary>/// 文件MD5值/// </summary>public string MD5 { get; set; }}}

FileConvertUtil.cs(上傳視頻截圖轉格式功能)

using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json;namespace GDSMCommon {public class FileConvertUtil{/// <summary>/// 獲取視頻的第一幀轉換成圖片/// </summary>/// <param name="ffmpegPath">ffmpeg路徑</param>/// <param name="oriVideoPath">視頻路徑</param>/// <param name="thubHeight">轉換后圖片高度</param>/// <param name="frameIndex">第幾幀</param>/// <param name="thubWidth">轉換后圖片的寬度</param>/// <param name="thubImagePath">轉換后圖片存儲路徑</param>public static void MediaExstractImage(string ffmpegPath,string oriVideoPath,string thubHeight,string frameIndex,string thubWidth,string thubImagePath){Process p = new Process();//建立外部調用線程p.StartInfo.FileName =ffmpegPath;//要調用外部程序的絕對路徑string command = string.Format("-i \"{1}\" -vframes 1 -r 1 -ac 1 -ab 2 -s {3}*{4} -f image2 \"{5}\"", ffmpegPath, oriVideoPath, frameIndex, thubWidth, thubHeight, thubImagePath);command = string.Format(" -i \"{0}\" -y -f image2 -ss 00:00:01 -t 0.000001 -s {1}*{2} \"{3}\"",oriVideoPath,thubWidth,thubHeight,thubImagePath);p.StartInfo.Arguments = command;p.StartInfo.UseShellExecute = false;//不使用操作系統外殼程序啟動線程(一定為FALSE,詳細的請看MSDN)p.StartInfo.RedirectStandardError = true;//把外部程序錯誤輸出寫到StandardError流中(這個一定要注意,FFMPEG的所有輸出信息,都為錯誤輸出流,用StandardOutput是捕獲不到任何消息的...這是我耗費了2個多月得出來的經驗...mencoder就是用standardOutput來捕獲的)p.StartInfo.CreateNoWindow = true;//不創建進程窗口p.ErrorDataReceived += new DataReceivedEventHandler(Output);//外部程序(這里是FFMPEG)輸出流時候產生的事件,這里是把流的處理過程轉移到下面的方法中,詳細請查閱MSDNp.Start();//啟動線程p.BeginErrorReadLine();//開始異步讀取p.WaitForExit();//阻塞等待進程結束p.Close();//關閉進程p.Dispose();//釋放資源LogHelper.WriteLog("圖片轉換成功:"+ thubImagePath);}/// <summary>/// 視頻轉成相應格式/// </summary>/// <param name="ffmpegPath"></param>/// <param name="oriVideoPath"></param>/// <param name="outVideoPath"></param>public static void ConvertMp4WithoutTxt(string ffmpegPath,string oriVideoPath, string outVideoPath){Process p = new Process();//建立外部調用線程p.StartInfo.FileName = ffmpegPath;// System.Windows.Forms.Application.StartupPath + "\\ffmpeg.exe";//要調用外部程序的絕對路徑// string StrArg = "-i concat:\"" + StrMP4A + "|" + StrMP4B + "\" -vcodec copy -acodec copy " + StrOutMp4Path + " -y";//string StrArg = "- i concat: \"" + StrMP4A + "|" + StrMP4B + "\" - vcodec copy - acodec copy "+ StrOutMp4Path + " -y";// string StrArg = "-i D:\\123.flv -i D:\\water.png -filter_complex \"overlay=10:10\" -b 1024k -acodec copy";// string StrArg = "-i "+StrMP4A+" -acodec copy -vcodec copy -f flv C:\\dis\\test1.mp4";string StrArg = "-i " + oriVideoPath + " -c:v libx264 -strict -2 " + oriVideoPath; //"-i \"" + oriVideoPath + "\" -qscale 6 \"" + outVideoPath + "\"";// "-i " + StrMP4A + " -y -vcodec h264 -b 500000 "+StrOutMp4Path ;p.StartInfo.Arguments = StrArg;p.StartInfo.UseShellExecute = false;//不使用操作系統外殼程序啟動線程(一定為FALSE,詳細的請看MSDN)p.StartInfo.RedirectStandardError = true;//把外部程序錯誤輸出寫到StandardError流中(這個一定要注意,FFMPEG的所有輸出信息,都為錯誤輸出流,用StandardOutput是捕獲不到任何消息的...這是我耗費了2個多月得出來的經驗...mencoder就是用standardOutput來捕獲的)p.StartInfo.CreateNoWindow = true;//不創建進程窗口p.ErrorDataReceived += new DataReceivedEventHandler(Output);//外部程序(這里是FFMPEG)輸出流時候產生的事件,這里是把流的處理過程轉移到下面的方法中,詳細請查閱MSDNp.Start();//啟動線程p.BeginErrorReadLine();//開始異步讀取p.WaitForExit();//阻塞等待進程結束p.Close();//關閉進程p.Dispose();//釋放資源}/// <summary>/// 轉換后調用方法/// </summary>/// <param name="sendProcess"></param>/// <param name="output"></param>private static void Output(object sendProcess, DataReceivedEventArgs output){if (!String.IsNullOrEmpty(output.Data)){//處理方法...}else{}}} }

?

總結

以上是生活随笔為你收集整理的多文件断点续传,上传视频自动转MP4和截图,图片格式转换的全部內容,希望文章能夠幫你解決所遇到的問題。

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

日韩大陆欧美高清视频区 | 欧美成人h版在线观看 | 亚洲高清视频在线观看 | 视频一区二区在线 | 成人在线免费视频观看 | 成人亚洲免费 | 欧美日韩在线看 | 国产日韩精品一区二区在线观看播放 | 在线免费观看视频a | 国产传媒一区在线 | 欧美日韩久久不卡 | 91视频在线免费下载 | 九九色在线观看 | 中文字幕国产精品 | 97精品一区二区三区 | 午夜影院在线观看18 | 中文字幕在线观 | 欧美一区二区三区在线 | 国产精品免费在线播放 | 久久不卡国产精品一区二区 | 亚洲精品欧美视频 | 午夜视频在线观看欧美 | 国产999在线观看 | 毛片网站观看 | 国精产品999国精产 久久久久 | 美女精品| 91爱爱电影 | 亚洲精品男女 | 国产专区视频在线 | av黄在线播放| 久草在线视频资源 | 99精品视频在线观看免费 | 久久久2o19精品 | 亚在线播放中文视频 | 亚洲精品视频中文字幕 | 中文字幕在线网址 | 中文av在线天堂 | 在线观看黄 | 一区二区三区四区五区在线视频 | 精品 一区 在线 | bayu135国产精品视频 | 香蕉网站在线观看 | 国产麻豆成人传媒免费观看 | 久久在线免费视频 | 国产免费成人av | 国产精品成人自产拍在线观看 | 亚洲精品乱码久久久久久按摩 | 色噜噜日韩精品一区二区三区视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 免费日韩 精品中文字幕视频在线 | 欧美乱熟臀69xxxxxx | 久久久国产精品网站 | 免费看短 | 亚洲综合激情五月 | 国产精品久久久久久久久毛片 | 日韩三级不卡 | 欧美91成人网 | 日韩综合视频在线观看 | 中文字幕精品一区久久久久 | 黄污在线看 | 精品在线观看视频 | 最近更新好看的中文字幕 | 国偷自产视频一区二区久 | 91精品国产综合久久福利 | 久久福利国产 | 色黄www小说 | 欧美老女人xx | 狠狠躁天天躁综合网 | 天天综合中文 | 狠狠色伊人亚洲综合网站色 | 成人久久18免费网站图片 | 亚洲精品视频在线观看免费视频 | 444av| 国产视频亚洲精品 | 四虎影视成人精品国库在线观看 | 日日操狠狠干 | 手机看片国产日韩 | 久久99国产精品二区护士 | 丁香九月激情 | 91网站在线视频 | 国产成人精品一区二三区 | 久久成人人人人精品欧 | 永久免费av在线播放 | 九色视频网址 | 国产真实在线 | 国产成人亚洲在线电影 | 在线视频婷婷 | 国产你懂的在线 | 91av亚洲| 欧美激情h | 欧美色综合久久 | 成人a级免费视频 | 2018好看的中文在线观看 | ,久久福利影视 | 最近久乱中文字幕 | 国产精品黄色 | 国产精品免费看久久久8精臀av | 激情久久一区二区三区 | 欧美日韩精品免费观看视频 | 精品久久一区二区三区 | 国产一区二区手机在线观看 | 国产五月婷 | 91在线免费视频 | 婷婷中文字幕在线观看 | 蜜桃视频在线观看一区 | 免费不卡中文字幕视频 | 久草在线免费在线观看 | 黄色网在线播放 | 黄色精品国产 | 91成版人在线观看入口 | 午夜精品一区二区三区在线视频 | 日韩黄色一区 | 9999在线视频 | 久久午夜网 | 久久99在线观看 | 日日夜夜噜 | 91香蕉国产 | 中日韩在线 | 日本中文字幕在线视频 | 97视频免费观看2区 亚洲视屏 | 婷婷综合电影 | 黄av在线 | 国产精品中文在线 | 一区二区成人国产精品 | 亚洲电影黄色 | 激情av资源 | 成人免费精品 | 国产精品不卡在线观看 | 久久精品成人欧美大片古装 | 成人一区二区三区在线 | www四虎影院 | 免费日韩一区二区 | 99精品国产一区二区 | 五月开心色 | www日韩在线观看 | www.黄色片网站| 在线视频一区观看 | 激情丁香综合五月 | 亚洲精品乱码久久久久久久久久 | 日日夜夜综合网 | 日韩精品短视频 | 日韩精品视频一二三 | 99精品免费网 | 日韩av二区 | 国产精品视频永久免费播放 | 国产精品亚洲a | 日本韩国精品在线 | 美女国产网站 | 色网址99 | 在线视频观看成人 | 狠狠干干 | 五月婷婷香蕉 | 免费麻豆视频 | 亚洲成a人片在线观看网站口工 | 免费av黄色| av先锋中文字幕 | 91热视频在线观看 | 91精品国产自产老师啪 | 啪啪凸凸 | 国产亚洲精品成人av久久ww | 五月天国产| 精品国产一区二区在线 | 亚洲国产成人精品久久 | 久久精品视频播放 | 欧洲性视频 | 国产一区视频在线播放 | 国产91精品一区二区麻豆亚洲 | 91久久久国产精品 | 国产精品久久久久久久久久久久午 | 欧美性生交大片免网 | 中文字幕欧美日韩va免费视频 | 最新国产精品亚洲 | 日韩亚洲在线 | 波多野结衣视频一区 | www.啪啪.com| 国产免费中文字幕 | 欧美亚洲精品一区 | 成人免费一级 | www.五月婷婷.com | 免费观看黄色12片一级视频 | 亚洲国产中文在线观看 | 国产96在线观看 | 亚州av网站大全 | 日日夜夜中文字幕 | 最新av免费在线 | 最新av免费在线观看 | 奇米先锋 | 亚洲在线精品视频 | 97视频亚洲| 人人干狠狠干 | 成人黄色免费在线观看 | 国产色综合天天综合网 | 亚洲欧美日韩一二三区 | 中文在线亚洲 | 日本在线观看中文字幕 | 亚洲精品视频在线观看免费视频 | 国产+日韩欧美 | 色噜噜日韩精品一区二区三区视频 | 国产成人久久精品77777综合 | 在线免费性生活片 | www.久久色 | 久久观看免费视频 | 久久久在线视频 | 超碰人人做 | 日韩免费小视频 | 国内精品久久久久影院一蜜桃 | 青青草国产精品 | 婷婷亚洲激情 | 久久在线免费观看 | 久草干 | 日本不卡一区二区 | 三级av免费 | 国产精品24小时在线观看 | 奇米网8888 | 西西大胆免费视频 | 天天操狠狠操 | 日韩免费精品 | 麻豆传媒在线视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 天天亚洲综合 | 国产成人精品久久久久蜜臀 | 中文字幕电影网 | 夜夜操综合网 | 99在线看| 美女黄久久 | 国产精品久久久久久麻豆一区 | 亚洲综合激情网 | 亚洲欧美乱综合图片区小说区 | 六月丁香婷 | 婷婷丁香综合 | 毛片在线播放网址 | 深爱激情久久 | 九九在线视频 | 日韩电影一区二区三区在线观看 | 国产精品福利久久久 | 91在线视频免费91 | 欧美日韩一区久久 | 亚洲一二三在线 | 中文字幕在线观看视频免费 | 在线观看中文字幕网站 | 免费黄色小网站 | 亚洲综合最新在线 | 一区二区三区在线影院 | 亚洲,播放| 亚洲精品在线国产 | 国产成人久久精品77777综合 | 在线视频观看成人 | 91免费的视频在线播放 | 99视频导航 | 国产精品露脸在线 | 久久久免费av| 精品国产美女 | 视频一区二区在线 | 天天噜天天色 | 亚洲精品久 | 国内精品久久久久久久久 | 天天要夜夜操 | 国内视频在线 | 免费视频成人 | 蜜臀av夜夜澡人人爽人人桃色 | 探花在线观看 | 国产精品成久久久久三级 | 韩国精品在线 | 国产精品综合在线 | 久久ww| 欧美成人影音 | 黄色一级影院 | 99精品久久99久久久久 | 欧美a√大片 | 久久超| 日本黄色黄网站 | 一级成人在线 | 999久久国精品免费观看网站 | 三级av在线播放 | 国产精品私人影院 | 在线视频日韩 | 99精品免费在线观看 | 婷婷成人亚洲综合国产xv88 | 中文字幕 在线看 | 在线观看国产91 | 日韩欧美电影 | 国产成人综合图片 | 五月婷婷影视 | 视频三区在线 | 伊人伊成久久人综合网小说 | 成人在线免费视频观看 | 色婷婷在线播放 | 久久草草热国产精品直播 | 91av电影网 | 伊人婷婷激情 | 免费黄色特级片 | 国产日韩欧美在线看 | 国产成人亚洲在线观看 | 激情深爱 | 天天色天天综合网 | 免费a级黄色毛片 | 日韩在线大片 | 99视频国产精品 | 中文亚洲欧美日韩 | 午夜精品久久久久久中宇69 | 一区二区视 | 成人三级av| 最近高清中文字幕 | 香蕉在线视频观看 | 激情综合网在线观看 | 成人av资源网 | 久久久久女教师免费一区 | 国产在线一线 | 久久开心激情 | 菠萝菠萝蜜在线播放 | 久久久精选 | 久久视频在线观看免费 | 超碰成人免费电影 | 中文字幕色在线视频 | 国产香蕉久久精品综合网 | 午夜狠狠操 | 欧美污污网站 | av福利资源| 成人亚洲欧美 | 国产一区二区免费在线观看 | 国产精品网址在线观看 | 97人人网 | 超碰97国产精品人人cao | 黄色1级毛片 | 婷婷久久丁香 | 日韩av线观看 | 成人在线播放av | 激情网五月天 | 最近中文字幕国语免费av | 国产一级大片在线观看 | 亚洲国产一二三 | 国产精品永久 | 麻豆免费精品视频 | 欧美成人性网 | 九七人人干| 欧美一区二区三区免费看 | 外国av网| 国内外成人在线 | 国语麻豆 | 国内外成人免费在线视频 | www国产一区 | 日黄网站 | 天海冀一区二区三区 | 黄色片亚洲| 国产精品免费小视频 | 国产精品日韩久久久久 | 国产91国语对白在线 | 亚洲乱亚洲乱亚洲 | 久久公开视频 | 中文字幕在线视频一区二区三区 | 精品久久久久久久久久 | 日韩精品中文字幕在线不卡尤物 | 中文字幕一区二区三区在线播放 | 久久天天躁狠狠躁夜夜不卡公司 | 国偷自产中文字幕亚洲手机在线 | 久久网站最新地址 | 狠狠操狠狠干天天操 | 波多野结衣在线观看一区二区三区 | 国产一级片网站 | 日韩中文字幕一区 | 日批视频在线 | 丝袜足交在线 | 麻花豆传媒一二三产区 | 亚洲最新毛片 | 国产中文字幕在线视频 | 99精品电影 | www麻豆视频 | 日日日爽爽爽 | 欧美日韩一二三四区 | 18久久久久久 | 久久久久国产精品厨房 | 色偷偷888欧美精品久久久 | 日韩在线视 | av直接看| 欧洲精品视频一区 | 搡bbbb搡bbb视频 | 亚洲国产日韩一区 | 伊人久久国产精品 | 探花视频免费在线观看 | 91精品国产成人www | 涩涩色亚洲一区 | 亚洲国产精品久久 | 九九99靖品| 国产自产高清不卡 | 国产成人精品久久久久 | 中文成人字幕 | 黄色福利视频网站 | 久久激情小说 | av短片在线| 午夜视频在线瓜伦 | 色婷婷在线视频 | 国产亚洲精品久久久网站好莱 | 久久精品香蕉 | 日本精品中文字幕在线观看 | 奇米影视在线99精品 | 成人h在线| 五月婷婷激情六月 | www最近高清中文国语在线观看 | 一级成人免费视频 | 这里有精品在线视频 | 午夜久久久久久久久 | 丁香六月中文字幕 | 99电影| 成人三级网站在线观看 | 久久99精品久久久久久三级 | 992tv在线| 国产成人在线综合 | 在线观看小视频 | 免费av看片| 午夜婷婷综合 | 久久视| 午夜av一区二区三区 | 综合色婷婷| 国产丝袜高跟 | 日韩成年视频 | 国产欧美久久久精品影院 | 久久免费视频4 | 精品视频在线观看 | 成年人免费看片 | 国产原创91 | 国产精品正在播放 | 天天操夜夜看 | 日韩三级中文字幕 | avove黑丝 | 免费在线观看视频一区 | 黄色片网站 | 最近久乱中文字幕 | 日本一区二区三区免费看 | 99久高清在线观看视频99精品热在线观看视频 | 黄色成品视频 | 国内外成人在线视频 | 91精品秘密在线观看 | 欧美一进一出抽搐大尺度视频 | 欧美性超爽 | av在线影视 | 欧美亚洲另类在线视频 | 在线精品亚洲 | 在线免费高清一区二区三区 | 天天干天天做天天爱 | 国产在线黄 | 国产亚洲精品久久久久秋 | 97国产在线视频 | 精品亚洲免费 | 日韩极品视频在线观看 | 国产精品久久久久四虎 | 精品理论片 | 麻豆视频免费播放 | 狠狠操夜夜操 | bbbbb女女女女女bbbbb国产 | 国产精品一区二区av影院萌芽 | 精品久久网 | 国产成人一二三 | 丁香高清视频在线看看 | 狠狠躁日日躁狂躁夜夜躁av | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 激情五月激情综合网 | 在线观看国产区 | 日韩在线观看视频中文字幕 | 精品久久久久久久久亚洲 | www视频在线免费观看 | 亚洲激情在线观看 | 国产手机视频在线观看 | 欧美精选一区二区三区 | 狠狠躁18三区二区一区ai明星 | 91av视频免费在线观看 | 久久99国产精品 | 91精品免费在线 | 国产成人一区在线 | 中文字幕久久精品亚洲乱码 | 色在线最新 | h网站免费在线观看 | 日韩久久视频 | 欧美黑人xxxx猛性大交 | 久色婷婷 | 免费成人在线视频网站 | 久久久久福利视频 | 天天综合视频在线观看 | 深夜免费福利在线 | 91亚洲精品久久久久图片蜜桃 | 奇米影视8888在线观看大全免费 | 日韩视频一区二区在线 | 国产成人精品久久久 | 午夜影视av| 亚洲国产播放 | 久久黄色免费观看 | 日本aa在线| 日日射av | 日日干夜夜骑 | 日日操日日 | 人人插人人舔 | 免费在线观看成人 | 久久99精品国产 | 美女视频黄的免费的 | 国产精品高潮在线观看 | 国产精品美女 | 亚洲视频在线免费观看 | 天天操夜夜爱 | 久久久久久久久毛片精品 | 天堂va在线观看 | 国产婷婷一区二区 | 亚洲jizzjizz日本少妇 | 激情九九 | 欧美国产日韩在线观看 | 日韩精品在线视频 | 天天操偷偷干 | 成人毛片在线视频 | 亚洲一区二区精品视频 | 天天做日日做天天爽视频免费 | 欧美激情精品久久久久久变态 | 精品久久免费 | 日本aaaa级毛片在线看 | 国产精品欧美日韩 | 精品产品国产在线不卡 | 国产一级电影在线 | 日韩一区二区三区观看 | 日日婷婷夜日日天干 | 婷婷精品进入 | 九九视频这里只有精品 | 成人片在线播放 | 欧美色综合天天久久综合精品 | 成年人免费看片 | 成人av电影免费观看 | 久久天天躁夜夜躁狠狠85麻豆 | www,黄视频 | 久草在线视频新 | 国产精品亚洲片夜色在线 | 亚洲视频精品在线 | 国色天香在线 | 精品国内| 久久狠狠亚洲综合 | 精品国产一区二区三区四 | 国产伦精品一区二区三区免费 | 草久热 | 黄色视屏在线免费观看 | 亚洲高清视频在线观看 | 亚洲在线视频网站 | 精品视频一区在线观看 | 91精品无人成人www | 一级黄网| 国产精品视频久久久 | 亚洲精欧美一区二区精品 | 午夜精品婷婷 | 免费色黄| 蜜臀av夜夜澡人人爽人人桃色 | 日日婷婷夜日日天干 | 午夜精品婷婷 | 日韩精品资源 | 欧美精品久久久久久久久久久 | 久久99国产综合精品 | 特级西西444www大精品视频免费看 | 久久久久久久久久毛片 | 色黄视频免费观看 | 中文一区在线观看 | 国内精品视频免费 | 国产福利不卡视频 | 天天天干天天射天天天操 | 色com| 日韩免费在线观看视频 | 亚洲精品久久久久中文字幕二区 | 九九导航| 亚洲国产精品成人va在线观看 | 中文在线8新资源库 | 久久综合九色综合欧美就去吻 | 在线黄色国产 | 欧美日韩在线视频观看 | 亚洲最新av在线网址 | 国产成人精品网站 | 92中文资源在线 | 国产精品视频专区 | 欧美调教网站 | 成人国产一区二区 | 久久er99热精品一区二区三区 | 人人爱人人射 | 伊人欧美| 国内一区二区视频 | 成人亚洲欧美 | a在线免费观看视频 | 视频国产精品 | 青草草在线视频 | 在线黄频 | 亚洲综合视频网 | 美女视频黄频大全免费 | 国产精品美女久久久久久 | 中文字幕在线观 | 91正在播放 | 黄免费在线观看 | 久久久久久久国产精品 | 日本丰满少妇免费一区 | 香蕉视频在线免费 | 亚洲精品玖玖玖av在线看 | 97国产视频| 人人射av | 中文字幕高清在线 | 午夜在线日韩 | 激情中文在线 | 日韩在线电影一区二区 | 国产精品久久久久久久av电影 | 最新国产精品拍自在线播放 | 99久久精品免费看国产 | 欧美婷婷色 | 99亚洲精品视频 | 在线之家免费在线观看电影 | 日韩一区二区免费视频 | 精品毛片一区二区免费看 | 日本黄色免费电影网站 | 免费日韩一区二区三区 | 狠狠综合| 夜夜躁狠狠躁日日躁 | 欧美在线你懂的 | 精品久久久久久久久久岛国gif | 中文字幕 国产视频 | 亚洲aⅴ在线 | 99久久精品视频免费 | 欧美性色网站 | 亚洲九九九在线观看 | 国产精品一区久久久久 | 开心婷婷色 | 免费在线91 | 精品久久久久久综合日本 | 欧美激情精品一区 | 又黄又爽又色无遮挡免费 | 欧美精品首页 | 在线观看网站你懂的 | 奇人奇案qvod| 日韩av伦理片 | 午夜久久久久久久久久久 | avav片| 欧美地下肉体性派对 | 在线观看精品黄av片免费 | 精品免费观看 | 国产一区高清在线观看 | 亚洲专区在线 | 国产成人久久精品亚洲 | 2022久久国产露脸精品国产 | 午夜精品电影一区二区在线 | 欧美一级片免费播放 | 免费在线91 | av一级二级| 激情婷婷在线观看 | bbb搡bbb爽爽爽 | 国产理论片在线观看 | 中文字幕在线看视频 | 91黄在线看 | 婷婷成人亚洲综合国产xv88 | 日韩av网页 | 亚洲国产资源 | 婷婷精品视频 | 免费在线观看成人 | 91大神在线观看视频 | 午夜免费在线观看 | 成人精品一区二区三区电影免费 | 极品美女被弄高潮视频网站 | 天天插天天色 | 欧美亚洲另类在线视频 | 亚洲高清视频一区二区三区 | 国产精品免费一区二区三区在线观看 | 亚州国产精品久久久 | av爱干| 亚洲亚洲精品在线观看 | 狠狠亚洲| 久综合网| www.黄色在线| 日韩一级理论片 | 激情五月***国产精品 | 亚洲黄色av网址 | 国产理论片在线观看 | 349k.cc看片app | 国产不卡视频在线播放 | 久久免费视频99 | 欧美精品xxx| 韩国av永久免费 | 国产成人久久av免费高清密臂 | 久久精品久久久精品美女 | 欧美日韩视频在线观看一区二区 | 欧美性生活免费看 | 亚洲精品欧美视频 | 狠狠做深爱婷婷综合一区 | 国产理论一区二区三区 | 最新99热| 中文字幕在线播放日韩 | 97在线超碰 | 精品国产免费观看 | 精品国产免费一区二区三区五区 | 麻豆视频免费网站 | 欧美日韩亚洲在线 | 久久这里只有精品首页 | 色爱成人网 | 一级国产视频 | 国语精品久久 | 国产视频观看 | 久久精品99国产精品酒店日本 | 在线日本看片免费人成视久网 | 最新黄色av网址 | 中文字幕制服丝袜av久久 | 免费视频资源 | 高清在线一区 | 成片视频免费观看 | 少妇高潮冒白浆 | 69久久99精品久久久久婷婷 | 亚洲精品一区二区三区在线观看 | 国产精品久久久久久久久久久免费看 | 999成人免费视频 | 一区二区三区免费在线 | 久久超级碰视频 | 在线免费色 | 天天天天天天干 | 国产精品18p | 国产中文字幕视频在线观看 | 免费午夜av | 中文字幕一区三区 | avsex| 免费在线观看毛片网站 | 婷婷激情欧美 | 国产精品乱码久久久 | www99久久 | 精品爱爱| 中文字幕在线视频网站 | 最新超碰在线 | 天天干天天干天天 | 九九在线高清精品视频 | 久久高清免费视频 | 亚洲精品在线一区二区 | 91 在线视频播放 | 亚洲伦理中文字幕 | 国产精品久久久久久久久久尿 | 狂野欧美激情性xxxx欧美 | 婷色在线 | 国产.精品.日韩.另类.中文.在线.播放 | 久久精品视频18 | 久艹视频免费观看 | 国内久久精品视频 | 91色国产在线 | 99视频偷窥在线精品国自产拍 | 国产午夜麻豆影院在线观看 | 丰满少妇一级片 | 911久久| 99婷婷狠狠成为人免费视频 | 久久噜噜少妇网站 | 亚洲精品视频在线免费播放 | 成年人免费在线观看网站 | 激情小说 五月 | 久久伊人免费视频 | 91福利影院在线观看 | 欧美色888 | 亚洲天堂色婷婷 | 亚洲精品国产拍在线 | 午夜久久福利影院 | 中文字幕在线观看完整版电影 | 国产亚洲精品久久19p | 日韩免费一级a毛片在线播放一级 | 成人免费看片98欧美 | 夜夜操综合网 | 精品91在线 | 亚洲国产婷婷 | av网址在线播放 | 亚洲高清国产视频 | 国产精品久久久久久久久久久久午夜 | 欧美精品被 | 激情视频91| 在线电影日韩 | 精品一二 | 鲁一鲁影院| 综合久久一本 | 精品国产乱子伦一区二区 | 精品视频免费观看 | 狠狠狠色丁香综合久久天下网 | 亚洲免费一级电影 | 午夜美女福利直播 | 国产精品日韩高清 | 91精品在线观看视频 | 91亚洲精品久久久久图片蜜桃 | 国产91九色视频 | 麻豆你懂的 | 国产成人精品一二三区 | 黄色在线看网站 | 91国内在线 | 久久精品一区二区三区国产主播 | 久久综合99| 久久国色夜色精品国产 | 久久艹在线 | 中文在线字幕免费观看 | 在线中文视频 | 国产精品一区二区62 | 日韩中文字幕免费看 | 国产精品久久久久永久免费 | 国产精品一区久久久久 | 国产一二三精品 | 日韩精品最新在线观看 | 97人人人| 福利一区二区三区四区 | 欧美一二三在线 | 一区二区三区免费在线观看视频 | 天天色天天色天天色 | 人人射人人插 | 久草香蕉在线 | 亚洲国产精品推荐 | 亚洲首页| 欧美一级黄色视屏 | 亚洲精品乱码久久久久久久久久 | 久久精品久久精品久久 | 九九久久久 | 国产尤物在线 | 午夜视频在线观看一区二区三区 | 久久成人欧美 | 2024国产精品视频 | 人人藻人人澡人人爽 | 极品久久久久 | 欧美日韩精 | 亚洲国产中文字幕在线视频综合 | 日韩狠狠操 | 色欧美综合 | www黄色com| 成人av观看| 99婷婷 | 97爱爱爱| 九色精品在线 | 国产精品初高中精品久久 | 伊人va| 久久久人人爽 | 午夜精品久久久久久久久久久久久久 | 97视频在线免费播放 | 色噜噜狠狠狠狠色综合久不 | 国产精品久久久久久久久久久免费 | 国产群p视频 | 免费网站看v片在线a | 亚洲国产中文在线观看 | 在线观看你懂的网址 | 九九天堂 | 91视频免费观看 | 在线精品视频免费播放 | 久久国产精品系列 | www.com黄色| 国产精品久久久久aaaa | 911香蕉| 三级av免费 | 国产精品不卡在线 | 91人人视频在线观看 | 在线观看免费国产小视频 | 天天婷婷 | 香蕉久久久久久久 | 中文字幕在线观看三区 | 波多野结衣电影一区二区三区 | 国产精品久久久久久吹潮天美传媒 | 超碰97人 | 高清中文字幕 | 国产日韩欧美在线免费观看 | 久久69精品久久久久久久电影好 | 1024手机在线看 | 国模视频一区二区 | 伊人影院得得 | 国产精品毛片一区二区在线看 | 中国一级特黄毛片大片久久 | 天天摸日日摸人人看 | 狠狠色丁香婷婷综合最新地址 | 久久免费成人精品视频 | 久久免费中文视频 | 黄色亚洲在线 | 91成年视频 | 99热99 | 久久久久久久久久影视 | 色婷婷五 | 999电影免费在线观看 | 国产剧情一区 | aaa日本高清在线播放免费观看 | 天天操欧美 | 久插视频 | 天天干天天综合 | 国产人成在线观看 | 特级西西人体444是什么意思 | 国产精品1区 | 国产精品视频久久久 | 天天人人综合 | 久久美女免费视频 | 激情网综合 | 人人人爽 | 亚洲精品国产精品国自 | 日韩中文字幕免费电影 | 波多野结衣在线视频免费观看 | 欧美最爽乱淫视频播放 | 91在线91 | 久久免费视频在线观看30 | 成人一级片在线观看 | 久久视奸 | 欧美不卡视频在线 | 成人一级视频在线观看 | 久精品在线观看 | 国产传媒中文字幕 | 肉色欧美久久久久久久免费看 | 在线观看精品国产 | 在线观看黄网 | 人人天天夜夜 | 四虎永久国产精品 | 国产精品日韩在线播放 | 日本在线观看黄色 | 日韩高清 一区 | av大片免费在线观看 | 香蕉久草 | 99精品在线观看 | 国产成人不卡 | 91精品在线免费视频 | av一级片网站 | 日韩在线免费小视频 | 97精品国产一二三产区 | 免费观看久久久 | 国产一区二区三区免费在线观看 | 最近久乱中文字幕 | 伊人久久婷婷 | 色就色,综合激情 | 久久久精品99 | 999免费视频 | 99精品在线免费视频 | 99精品视频免费在线观看 | 天天干天天操天天射 | 在线观看资源 | 日韩黄色网络 | 日韩欧美国产视频 | 久久r精品| 国产一区二区不卡视频 | 天天玩天天干 | 午夜久久久影院 | 婷婷激情综合五月天 | 五月香视频在线观看 | 99人久久精品视频最新地址 | www.久久爱.cn| 精品视频国产一区 | 免费av试看 | 日本黄色免费大片 | 久久99这里只有精品 | 九九久| 99亚洲精品视频 | 最新日本中文字幕 | 日本黄色免费在线观看 | 黄色官网在线观看 | 在线播放 日韩专区 | 日韩三级.com | 久久精品欧美 | 一区二区三区av在线 | 国产又粗又猛又黄又爽 | 欧美性大胆 | 国产视频在线观看免费 | 天天玩天天干天天操 | 欧美视屏一区二区 | 日韩精品视频免费专区在线播放 | 免费观看高清 | av先锋中文字幕 | av看片网址| 免费成人av网站 | 精品视频免费在线 | 亚洲国产精品推荐 | 欧美精品久久久久久久久免 | 免费观看xxxx9999片 | 国产精品美女久久久久久久久久久 | 亚洲午夜精品久久久 | 九色视频网址 | 国产精品国产三级国产aⅴ入口 | 成人aⅴ视频 | 激情欧美网| 国产在线观看国语版免费 | 久久伊人色综合 | 午夜av在线 | 9在线观看免费高清完整版 玖玖爱免费视频 | 亚洲精品中文在线 | 欧美va日韩va | 91久久国产综合精品女同国语 | 日韩网站在线观看 | 国产午夜小视频 | 美女黄久久 | 国产精品免费观看网站 | 蜜臀aⅴ国产精品久久久国产 | 久草视频手机在线 | 国产免费成人av | 国产精品一区二区久久久 | 婷婷色在线观看 | 亚洲专区免费观看 | 亚洲精区二区三区四区麻豆 | 91精品久久久久久综合五月天 | 在线观看亚洲国产精品 | 国产区在线 | 九热在线| 又紧又大又爽精品一区二区 | 成年人在线免费视频观看 | 911免费视频| 日韩av图片 | 天天久久综合 | 这里有精品在线视频 | 免费高清男女打扑克视频 | 99产精品成人啪免费网站 | 在线91色 | 97精品国产91久久久久久 | 97超碰精品 | 99精品国产亚洲 | 天天操天天干天天综合网 | 欧美精品中文 | 激情五月婷婷综合网 | 成人毛片在线观看视频 | 国产亚洲精品xxoo | av先锋影音少妇 | 最近免费在线观看 |