欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁(yè) > 知識(shí)庫(kù) > MongoDB.NET 2.2.4驅(qū)動(dòng)版本對(duì)Mongodb3.3數(shù)據(jù)庫(kù)中GridFS增刪改查

MongoDB.NET 2.2.4驅(qū)動(dòng)版本對(duì)Mongodb3.3數(shù)據(jù)庫(kù)中GridFS增刪改查

熱門標(biāo)簽:杭州人工電銷機(jī)器人價(jià)格 呼和浩特電銷外呼系統(tǒng)加盟 廣州長(zhǎng)安公司怎樣申請(qǐng)400電話 云南外呼系統(tǒng) 電銷機(jī)器人是什么軟件 蘋果汽車租賃店地圖標(biāo)注 怎么投訴地圖標(biāo)注 濟(jì)南電銷機(jī)器人加盟公司 老虎洗衣店地圖標(biāo)注

本文實(shí)例為大家分享了針對(duì)Mongodb3.3數(shù)據(jù)庫(kù)中GridFS增刪改查,供大家參考,具體內(nèi)容如下

Program.cs代碼如下:

internal class Program 
 { 
 private static void Main(string[] args) 
 { 
  GridFSHelper helper = new GridFSHelper("mongodb://localhost", "GridFSDemo", "Pictures"); 
 
  #region 上傳圖片 
 
  //第一種 
  //Image image = Image.FromFile("D:\\dog.jpg"); 
  //byte[] imgdata = ImageHelper.ImageToBytes(image); 
  //ObjectId oid = helper.UploadGridFSFromBytes(imgdata); 
 
  //第二種 
  //Image image = Image.FromFile("D:\\man.jpg"); 
  //Stream imgSteam = ImageHelper.ImageToStream(image); 
  //ObjectId oid = helper.UploadGridFSFromStream("man",imgSteam); 
  //LogHelper.WriteFile(oid.ToString()); 
  // Console.Write(oid.ToString()); 
 
  #endregion 
 
  #region 下載圖片 
 
  //第一種 
  //ObjectId downId = new ObjectId("578e2d17d22aed1850c7855d"); 
  //byte[] Downdata= helper.DownloadAsByteArray(downId); 
  //string name= ImageHelper.CreateImageFromBytes("coolcar",Downdata); 
 
  //第二種 
  // byte[] Downdata = helper.DownloadAsBytesByName("QQQ"); 
  //string name = ImageHelper.CreateImageFromBytes("dog", Downdata); 
 
  //第三種 
  //byte[] Downdata = helper.DownloadAsBytesByName("QQQ"); 
  //Image img = ImageHelper.BytesToImage(Downdata); 
  //string path = Path.GetFullPath(@"../../DownLoadImg/") + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".jpg"; 
  ////使用path獲取當(dāng)前應(yīng)用程序集的執(zhí)行目錄的上級(jí)的上級(jí)目錄 
  //img.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg); 
 
  #endregion 
 
  #region 查找圖片 
  GridFSFileInfo gridFsFileInfo = helper.FindFiles("man"); 
  Console.WriteLine(gridFsFileInfo.Id); 
  #endregion 
 
  #region 刪除圖片 
  //helper.DroppGridFSBucket(); 
  #endregion 
 
  Console.ReadKey(); 
 } 
 } 

GridFSHelper.cs的代碼如下:

using System; 
using System.Collections.Generic; 
using System.Configuration; 
using System.IO; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using MongoDB.Bson; 
using MongoDB.Driver; 
using MongoDB.Driver.GridFS; 
 
namespace MongoDemo 
{ 
 public class GridFSHelper 
 { 
 private readonly IMongoClient client; 
 private readonly IMongoDatabase database; 
 private readonly IMongoCollectionBsonDocument> collection; 
 private readonly GridFSBucket bucket; 
 private GridFSFileInfo fileInfo; 
 private ObjectId oid; 
 
 public GridFSHelper() 
  : this( 
  ConfigurationManager.AppSettings["mongoQueueUrl"], ConfigurationManager.AppSettings["mongoQueueDb"], 
  ConfigurationManager.AppSettings["mongoQueueCollection"]) 
 { 
 } 
 
 public GridFSHelper(string url, string db, string collectionName) 
 { 
  if (url == null) 
  { 
  throw new ArgumentNullException("url"); 
  } 
  else 
  { 
  client = new MongoClient(url); 
  } 
 
  if (db == null) 
  { 
  throw new ArgumentNullException("db"); 
  } 
  else 
  { 
  database = client.GetDatabase(db); 
  } 
 
  if (collectionName == null) 
  { 
  throw new ArgumentNullException("collectionName"); 
  } 
  else 
  { 
  collection = database.GetCollectionBsonDocument>(collectionName); 
  } 
 
  //this.collection = new MongoClient(url).GetDatabase(db).GetCollectionBsonDocument>(collectionName); 
 
  GridFSBucketOptions gfbOptions = new GridFSBucketOptions() 
  { 
  BucketName = "bird", 
  ChunkSizeBytes = 1*1024*1024, 
  ReadConcern = null, 
  ReadPreference = null, 
  WriteConcern = null 
  }; 
  var bucket = new GridFSBucket(database, new GridFSBucketOptions 
  { 
  BucketName = "videos", 
  ChunkSizeBytes = 1048576, // 1MB 
  WriteConcern = WriteConcern.WMajority, 
  ReadPreference = ReadPreference.Secondary 
  }); 
  this.bucket = new GridFSBucket(database, null); 
 } 
 
 public GridFSHelper(IMongoCollectionBsonDocument> collection) 
 { 
  if (collection == null) 
  { 
  throw new ArgumentNullException("collection"); 
  } 
  this.collection = collection; 
  this.bucket = new GridFSBucket(collection.Database); 
 } 
 
 
 public ObjectId UploadGridFSFromBytes(string filename, Byte[] source) 
 { 
  oid = bucket.UploadFromBytes(filename, source); 
  return oid; 
 } 
 
 public ObjectId UploadGridFSFromStream(string filename,Stream source) 
 { 
  using (source) 
  { 
  oid = bucket.UploadFromStream(filename, source); 
  return oid; 
  } 
 } 
 
 public Byte[] DownloadAsByteArray(ObjectId id) 
 { 
  Byte[] bytes = bucket.DownloadAsBytes(id); 
  return bytes; 
 } 
 
 public Stream DownloadToStream(ObjectId id) 
 { 
  Stream destination = new MemoryStream(); 
  bucket.DownloadToStream(id, destination); 
  return destination; 
 } 
 
 public Byte[] DownloadAsBytesByName(string filename) 
 { 
  Byte[] bytes = bucket.DownloadAsBytesByName(filename); 
  return bytes; 
 } 
 
 public Stream DownloadToStreamByName(string filename) 
 { 
  Stream destination = new MemoryStream(); 
  bucket.DownloadToStreamByName(filename, destination); 
  return destination; 
 } 
 
 public GridFSFileInfo FindFiles(string filename) 
 { 
  var filter = BuildersGridFSFileInfo>.Filter.And( 
  BuildersGridFSFileInfo>.Filter.Eq(x => x.Filename, "man"), 
  BuildersGridFSFileInfo>.Filter.Gte(x => x.UploadDateTime, new DateTime(2015, 1, 1, 0, 0, 0, DateTimeKind.Utc)), 
  BuildersGridFSFileInfo>.Filter.Lt(x => x.UploadDateTime, new DateTime(2017, 2, 1, 0, 0, 0, DateTimeKind.Utc))); 
  var sort = BuildersGridFSFileInfo>.Sort.Descending(x => x.UploadDateTime); 
  var options = new GridFSFindOptions 
  { 
  Limit = 1, 
  Sort = sort 
  }; 
  using (var cursor = bucket.Find(filter, options)) 
  { 
   fileInfo = cursor.ToList().FirstOrDefault(); 
  } 
  return fileInfo; 
 } 
 
 
 public void DeleteAndRename(ObjectId id) 
 { 
  bucket.Delete(id); 
 } 
 
 //The “fs.files” collection will be dropped first, followed by the “fs.chunks” collection. This is the fastest way to delete all files stored in a GridFS bucket at once. 
 public void DroppGridFSBucket() 
 { 
  bucket.Drop(); 
 } 
 
 public void RenameAsingleFile(ObjectId id,string newFilename) 
 { 
  bucket.Rename(id, newFilename); 
 } 
 
 public void RenameAllRevisionsOfAfile(string oldFilename,string newFilename) 
 { 
  var filter = BuildersGridFSFileInfo>.Filter.Eq(x => x.Filename, oldFilename); 
  var filesCursor = bucket.Find(filter); 
  var files = filesCursor.ToList(); 
  foreach (var file in files) 
  { 
  bucket.Rename(file.Id, newFilename); 
  } 
 } 
 
 } 
} 

ImageHelper.cs的代碼如下:

using System; 
using System.Collections.Generic; 
using System.Drawing; 
using System.Drawing.Imaging; 
using System.IO; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
 
namespace MongoDemo 
{ 
 public static class ImageHelper 
 { 
 /// summary> 
 /// //將Image轉(zhuǎn)換成流數(shù)據(jù),并保存為byte[] 
 /// /summary> 
 /// param name="image">/param> 
 /// returns>/returns> 
 public static byte[] ImageToBytes(Image image) 
 { 
  ImageFormat format = image.RawFormat; 
  using (MemoryStream ms = new MemoryStream()) 
  { 
  if (format.Equals(ImageFormat.Jpeg)) 
  { 
   image.Save(ms, ImageFormat.Jpeg); 
  } 
  else if (format.Equals(ImageFormat.Png)) 
  { 
   image.Save(ms, ImageFormat.Png); 
  } 
  else if (format.Equals(ImageFormat.Bmp)) 
  { 
   image.Save(ms, ImageFormat.Bmp); 
  } 
  else if (format.Equals(ImageFormat.Gif)) 
  { 
   image.Save(ms, ImageFormat.Gif); 
  } 
  else if (format.Equals(ImageFormat.Icon)) 
  { 
   image.Save(ms, ImageFormat.Icon); 
  } 
  byte[] buffer = new byte[ms.Length]; 
  //Image.Save()會(huì)改變MemoryStream的Position,需要重新Seek到Begin 
  ms.Seek(0, SeekOrigin.Begin); 
  ms.Read(buffer, 0, buffer.Length); 
  return buffer; 
  } 
 } 
 
 
 public static Stream ImageToStream(Image image) 
 { 
  ImageFormat format = image.RawFormat; 
  MemoryStream ms = new MemoryStream(); 
 
  if (format.Equals(ImageFormat.Jpeg)) 
  { 
  image.Save(ms, ImageFormat.Jpeg); 
  } 
  else if (format.Equals(ImageFormat.Png)) 
  { 
  image.Save(ms, ImageFormat.Png); 
  } 
  else if (format.Equals(ImageFormat.Bmp)) 
  { 
  image.Save(ms, ImageFormat.Bmp); 
  } 
  else if (format.Equals(ImageFormat.Gif)) 
  { 
  image.Save(ms, ImageFormat.Gif); 
  } 
  else if (format.Equals(ImageFormat.Icon)) 
  { 
  image.Save(ms, ImageFormat.Icon); 
  } 
  return ms; 
 } 
 
 //參數(shù)是圖片的路徑 
 public static byte[] GetPictureData(string imagePath) 
 { 
  FileStream fs = new FileStream(imagePath, FileMode.Open); 
  byte[] byteData = new byte[fs.Length]; 
  fs.Read(byteData, 0, byteData.Length); 
  fs.Close(); 
  return byteData; 
 } 
 
 
 
 /// summary> 
 /// Convert Byte[] to Image 
 /// /summary> 
 /// param name="buffer">/param> 
 /// returns>/returns> 
 public static Image BytesToImage(byte[] buffer) 
 { 
  MemoryStream ms = new MemoryStream(buffer); 
  Image image = System.Drawing.Image.FromStream(ms); 
  return image; 
 } 
 
 /// summary> 
 /// Convert Byte[] to a picture and Store it in file 
 /// /summary> 
 /// param name="fileName">/param> 
 /// param name="buffer">/param> 
 /// returns>/returns> 
 public static string CreateImageFromBytes(string fileName, byte[] buffer) 
 { 
  string file = fileName; 
  Image image = BytesToImage(buffer); 
  ImageFormat format = image.RawFormat; 
  if (format.Equals(ImageFormat.Jpeg)) 
  { 
  file += ".jpg"; 
  } 
  else if (format.Equals(ImageFormat.Png)) 
  { 
  file += ".png"; 
  } 
  else if (format.Equals(ImageFormat.Bmp)) 
  { 
  file += ".bmp"; 
  } 
  else if (format.Equals(ImageFormat.Gif)) 
  { 
  file += ".gif"; 
  } 
  else if (format.Equals(ImageFormat.Icon)) 
  { 
  file += ".icon"; 
  } 
  System.IO.FileInfo info = new System.IO.FileInfo(Path.GetFullPath(@"DownLoadImg\")); //在當(dāng)前程序集目錄中添加指定目錄DownLoadImg 
  System.IO.Directory.CreateDirectory(info.FullName); 
  File.WriteAllBytes(info+file, buffer); 
  return file; 
 } 
 } 
} 

LogHelper.cs代碼如下:

/// summary> 
 /// 手動(dòng)記錄錯(cuò)誤日志,不用Log4Net組件 
 /// /summary> 
 public class LogHelper 
 { 
 /// summary> 
 /// 將日志寫入指定的文件 
 /// /summary> 
 /// param name="Path">文件路徑,如果沒有該文件,剛創(chuàng)建/param> 
 /// param name="content">日志內(nèi)容/param> 
 public static void WriteFile(string content) 
 { 
  string Path = AppDomain.CurrentDomain.BaseDirectory + "Log"; 
  if (!Directory.Exists(Path)) 
  { 
  //若文件目錄不存在 則創(chuàng)建 
  Directory.CreateDirectory(Path); 
  } 
  Path += "\\" + DateTime.Now.ToString("yyMMdd") + ".log"; 
  if (!File.Exists(Path)) 
  { 
  File.Create(Path).Close(); 
  } 
  StreamWriter writer = new StreamWriter(Path, true, Encoding.GetEncoding("gb2312")); 
  writer.WriteLine("時(shí)間:" + DateTime.Now.ToString()); 
  writer.WriteLine("日志信息:" + content); 
  writer.WriteLine("-----------------------------------------------------------"); 
  writer.Close(); 
  writer.Dispose(); 
 } 
 
 /// summary> 
 /// 將日志寫入指定的文件 
 /// /summary> 
 /// param name="Path">文件路徑,如果沒有該文件,剛創(chuàng)建/param> 
 /// param name="content">日志內(nèi)容/param> 
 public static void WriteFile(int content) 
 { 
  string Path = AppDomain.CurrentDomain.BaseDirectory + "Log"; 
  if (!Directory.Exists(Path)) 
  { 
  //若文件目錄不存在 則創(chuàng)建 
  Directory.CreateDirectory(Path); 
  } 
  Path += "\\" + DateTime.Now.ToString("yyMMdd") + ".log"; 
  if (!File.Exists(Path)) 
  { 
  File.Create(Path).Close(); 
  } 
  StreamWriter writer = new StreamWriter(Path, true, Encoding.GetEncoding("gb2312")); 
  writer.WriteLine("時(shí)間:" + DateTime.Now.ToString()); 
  writer.WriteLine("日志信息:" + content); 
  writer.WriteLine("-----------------------------------------------------------"); 
  writer.Close(); 
  writer.Dispose(); 
 } 
 
 
 /// summary> 
 /// 將日志寫入指定的文件 
 /// /summary> 
 /// param name="erroMsg">錯(cuò)誤詳細(xì)信息/param> 
 /// param name="source">源位置/param> 
 /// param name="fileName">文件名/param> 
 public static void WriteFile(string erroMsg, string source, string stackTrace, string fileName) 
 { 
  string Path = AppDomain.CurrentDomain.BaseDirectory + "Log"; 
  if (!Directory.Exists(Path)) 
  { 
  //若文件目錄不存在 則創(chuàng)建 
  Directory.CreateDirectory(Path); 
  } 
  Path += "\\" + DateTime.Now.ToString("yyMMdd") + ".log"; 
  if (!File.Exists(Path)) 
  { 
  File.Create(Path).Close(); 
  } 
  StreamWriter writer = new StreamWriter(Path, true, Encoding.GetEncoding("gb2312")); 
  writer.WriteLine("時(shí)間:" + DateTime.Now.ToString()); 
  writer.WriteLine("文件:" + fileName); 
  writer.WriteLine("源:" + source); 
  writer.WriteLine("錯(cuò)誤信息:" + erroMsg); 
  writer.WriteLine("-----------------------------------------------------------"); 
  writer.Close(); 
  writer.Dispose(); 
 } 
 } 

結(jié)果如下:

Mongodb數(shù)據(jù):

查找圖片:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • MongoDB服務(wù)端JavaScript腳本使用方法
  • mongoDB中CRUD的深入講解
  • Mongo DB增刪改查命令
  • mongodb+php實(shí)現(xiàn)簡(jiǎn)單的增刪改查
  • PHP簡(jiǎn)單操作MongoDB的方法(安裝及增刪改查)
  • mongodb增刪改查詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
  • MongoDB簡(jiǎn)單操作示例【連接、增刪改查等】
  • koa+mongoose實(shí)現(xiàn)簡(jiǎn)單增刪改查接口的示例代碼
  • Node.js對(duì)MongoDB進(jìn)行增刪改查操作的實(shí)例代碼
  • java連接Mongodb實(shí)現(xiàn)增刪改查
  • MongoDB的基本操作實(shí)例詳解【服務(wù)端啟動(dòng),客戶端連接,CRUD操作】

標(biāo)簽:雞西 廈門 遼陽(yáng) 興安盟 無錫 泰安 玉林 自貢

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MongoDB.NET 2.2.4驅(qū)動(dòng)版本對(duì)Mongodb3.3數(shù)據(jù)庫(kù)中GridFS增刪改查》,本文關(guān)鍵詞  MongoDB.NET,2.2.4,驅(qū)動(dòng),版本,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB.NET 2.2.4驅(qū)動(dòng)版本對(duì)Mongodb3.3數(shù)據(jù)庫(kù)中GridFS增刪改查》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于MongoDB.NET 2.2.4驅(qū)動(dòng)版本對(duì)Mongodb3.3數(shù)據(jù)庫(kù)中GridFS增刪改查的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    91美女在线视频| 欧美影院一区二区三区| 欧美日本在线一区| 一区二区三区四区不卡在线| 白白色 亚洲乱淫| 色成人在线视频| 亚洲天堂精品在线观看| av成人免费在线观看| 超碰手机在线观看| 亚洲丝袜精品丝袜在线| 91麻豆免费视频| 欧美视频精品在线| 亚洲bdsm女犯bdsm网站| 玖玖爱在线精品视频| 日韩午夜激情视频| 蜜桃精品视频在线| 国产123在线| 国产欧美一区二区精品性色超碰 | 亚洲成人在线网站| 国产a√精品区二区三区四区| 精品视频1区2区| 视频在线观看91| 欧美偷拍一区二区三区| 久久久不卡网国产精品一区| 国产成人综合在线| 色视频一区二区| 亚洲一区二区影院| 无码人妻aⅴ一区二区三区| 精品国产乱码久久| 国产盗摄女厕一区二区三区| 国产少妇在线观看| 亚洲一二三四久久| 亚洲熟妇无码av| 国产片一区二区三区| 成人av网址在线| 欧美日韩黄色一区二区| 男人的j进女人的j一区| 亚洲女同二女同志奶水| 亚洲欧美电影院| 欧美双性人妖o0| 久久免费视频一区| 成人app下载| 在线成人av影院| 激情综合色综合久久综合| 侵犯稚嫩小箩莉h文系列小说| 一区二区三区在线视频播放 | 亚洲男人的天堂在线观看| 久久发布国产伦子伦精品| 欧美一区二区在线播放| 国产精品一区免费视频| 欧美亚洲国产一卡| 久久精品国内一区二区三区| 午夜爽爽爽男女免费观看| 亚洲韩国一区二区三区| 免费看黄色的视频| 日韩久久一区二区| 少妇大叫太粗太大爽一区二区| 国产精品妹子av| 久久福利小视频| 国产精品午夜在线| 国产性生活毛片| 国产精品午夜在线| 亚洲国产综合视频| 中文字幕一区二区视频| 中文字幕av网址| 亚洲欧美区自拍先锋| 三级网站在线免费观看| 亚洲女爱视频在线| 无码人妻aⅴ一区二区三区69岛| 亚洲色图视频网站| 亚洲最大色网站| 国产精品久久久久久成人| 亚洲一区在线视频| 一区二区三区在线播放视频| 亚洲成人福利片| 日韩女优一区二区| 久久电影网站中文字幕| 欧美日韩在线免费视频| 国产毛片精品视频| 欧美一二三在线| 99re8在线精品视频免费播放| 欧美精品一区男女天堂| 一二三区视频在线观看| 国产精品乱码人人做人人爱| 亚洲中文字幕无码av| 亚洲免费在线看| 亚洲aaa视频| 奇米在线7777在线精品| 欧美性猛交xxxx黑人交| 国产福利一区二区| 欧美成人性战久久| 麻豆av免费看| 国产精品美女一区二区在线观看| 免费在线观看你懂的| 亚洲午夜精品一区二区三区他趣| 四虎永久免费地址| 韩国三级在线一区| 日韩一区二区三区av| 一级全黄裸体片| 椎名由奈av一区二区三区| 国产精品1区2区3区4区| 久久综合综合久久综合| 欧美一区二区日韩一区二区| 久久久久99人妻一区二区三区| 国产精品久久久久久久久搜平片| 亚洲第一综合网| 免费欧美日韩国产三级电影| 欧美另类videos死尸| 972aa.com艺术欧美| 国产精品成人网| 天海翼在线视频| 国产伦精品一区二区三区在线观看| 欧美v国产在线一区二区三区| 成人免费看片载| 亚洲成人免费看| 欧美日韩精品一区二区天天拍小说 | 欧美性色欧美a在线播放| 成人动漫一区二区三区| 少妇无套高潮一二三区| 婷婷中文字幕一区三区| 555www色欧美视频| 亚洲天堂2024| 日韩高清在线观看| 欧美一区二区三区小说| 一本加勒比波多野结衣| 日韩 欧美一区二区三区| 日韩欧美一级二级三级久久久| 国产草草浮力影院| 日本亚洲免费观看| 欧美电视剧免费全集观看| 国产男女猛烈无遮挡a片漫画| 日韩国产欧美在线播放| 欧美一区二视频| 日本高清www| 国产做a爰片久久毛片| 欧美国产日本视频| 波多野结衣爱爱视频| 97久久精品人人澡人人爽| 一区二区三区四区中文字幕| 欧美日韩五月天| 最近日本中文字幕| 美女尤物国产一区| 久久久综合激的五月天| 日本激情视频一区二区三区| 成人午夜av在线| 亚洲精品国久久99热| 欧美日韩在线免费视频| 伊人久久一区二区三区| 蜜桃一区二区三区四区| 久久久高清一区二区三区| 老熟妇高潮一区二区三区| 9色porny自拍视频一区二区| 亚洲欧美乱综合| 欧美一区二区视频在线观看| av黄色在线免费观看| 国产69精品久久久久777| 亚洲乱码日产精品bd| 8v天堂国产在线一区二区| 四虎影成人精品a片| 国产福利91精品| 伊人色综合久久天天| 日韩欧美国产电影| 青青草华人在线视频| 97久久超碰精品国产| 日本欧美大码aⅴ在线播放| 日本一区二区三区视频视频| 色偷偷88欧美精品久久久| 尤物网站在线观看| 国产在线麻豆精品观看| 亚洲人成伊人成综合网小说| 91精品国产91久久久久久一区二区 | 成人午夜激情影院| 亚洲国产精品久久人人爱蜜臀 | 欧美一级二级三级蜜桃| 青青青视频在线播放| 91免费版在线| 另类成人小视频在线| 亚洲欧洲成人精品av97| 91精品国产综合久久久久久久久久 | 欧美人与禽zozo性伦| 国产亚洲精品熟女国产成人| 国产成人99久久亚洲综合精品| 亚洲一二三四在线| 国产日韩欧美亚洲| 欧美精品日日鲁夜夜添| 影音先锋男人资源在线观看| 99热这里只有精品2| 国内精品视频666| 中文字幕一区在线观看| 日韩欧美成人激情| 深夜福利影院在线观看| 在线观看福利片| 人妻巨大乳一二三区| 国产一二精品视频| 亚洲成a人片在线观看中文| 国产精品美女久久久久aⅴ| 日韩亚洲电影在线| 欧美自拍偷拍午夜视频| 国产精品麻豆一区| 成人性生活免费看|