婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MongoDB.NET 2.2.4驅動版本對Mongodb3.3數據庫中GridFS增刪改查

MongoDB.NET 2.2.4驅動版本對Mongodb3.3數據庫中GridFS增刪改查

熱門標簽:杭州人工電銷機器人價格 呼和浩特電銷外呼系統加盟 廣州長安公司怎樣申請400電話 云南外呼系統 電銷機器人是什么軟件 蘋果汽車租賃店地圖標注 怎么投訴地圖標注 濟南電銷機器人加盟公司 老虎洗衣店地圖標注

本文實例為大家分享了針對Mongodb3.3數據庫中GridFS增刪改查,供大家參考,具體內容如下

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獲取當前應用程序集的執行目錄的上級的上級目錄 
  //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轉換成流數據,并保存為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()會改變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; 
 } 
 
 //參數是圖片的路徑 
 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\")); //在當前程序集目錄中添加指定目錄DownLoadImg 
  System.IO.Directory.CreateDirectory(info.FullName); 
  File.WriteAllBytes(info+file, buffer); 
  return file; 
 } 
 } 
} 

LogHelper.cs代碼如下:

/// summary> 
 /// 手動記錄錯誤日志,不用Log4Net組件 
 /// /summary> 
 public class LogHelper 
 { 
 /// summary> 
 /// 將日志寫入指定的文件 
 /// /summary> 
 /// param name="Path">文件路徑,如果沒有該文件,剛創建/param> 
 /// param name="content">日志內容/param> 
 public static void WriteFile(string content) 
 { 
  string Path = AppDomain.CurrentDomain.BaseDirectory + "Log"; 
  if (!Directory.Exists(Path)) 
  { 
  //若文件目錄不存在 則創建 
  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("時間:" + DateTime.Now.ToString()); 
  writer.WriteLine("日志信息:" + content); 
  writer.WriteLine("-----------------------------------------------------------"); 
  writer.Close(); 
  writer.Dispose(); 
 } 
 
 /// summary> 
 /// 將日志寫入指定的文件 
 /// /summary> 
 /// param name="Path">文件路徑,如果沒有該文件,剛創建/param> 
 /// param name="content">日志內容/param> 
 public static void WriteFile(int content) 
 { 
  string Path = AppDomain.CurrentDomain.BaseDirectory + "Log"; 
  if (!Directory.Exists(Path)) 
  { 
  //若文件目錄不存在 則創建 
  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("時間:" + DateTime.Now.ToString()); 
  writer.WriteLine("日志信息:" + content); 
  writer.WriteLine("-----------------------------------------------------------"); 
  writer.Close(); 
  writer.Dispose(); 
 } 
 
 
 /// summary> 
 /// 將日志寫入指定的文件 
 /// /summary> 
 /// param name="erroMsg">錯誤詳細信息/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)) 
  { 
  //若文件目錄不存在 則創建 
  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("時間:" + DateTime.Now.ToString()); 
  writer.WriteLine("文件:" + fileName); 
  writer.WriteLine("源:" + source); 
  writer.WriteLine("錯誤信息:" + erroMsg); 
  writer.WriteLine("-----------------------------------------------------------"); 
  writer.Close(); 
  writer.Dispose(); 
 } 
 } 

結果如下:

Mongodb數據:

查找圖片:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

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

標簽:雞西 廈門 遼陽 興安盟 無錫 泰安 玉林 自貢

巨人網絡通訊聲明:本文標題《MongoDB.NET 2.2.4驅動版本對Mongodb3.3數據庫中GridFS增刪改查》,本文關鍵詞  MongoDB.NET,2.2.4,驅動,版本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB.NET 2.2.4驅動版本對Mongodb3.3數據庫中GridFS增刪改查》相關的同類信息!
  • 本頁收集關于MongoDB.NET 2.2.4驅動版本對Mongodb3.3數據庫中GridFS增刪改查的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    热久久免费视频| 国内成人自拍视频| 亚洲电影第三页| 91在线视频观看| 亚洲少妇30p| 91官网在线免费观看| 亚洲欧美激情小说另类| 99久久久久久| 亚洲激情图片qvod| 欧美日本乱大交xxxxx| 午夜电影久久久| 欧美一区二区三区日韩视频| 亚洲一卡二卡三卡四卡五卡| 欧美午夜在线观看| 日韩电影在线一区二区| 亚洲精品一区二区三区影院| 成人听书哪个软件好| 一区二区在线观看免费| 欧美日韩高清影院| 日韩福利视频导航| 国产欧美一区二区在线| 91视频免费看| 久久国产乱子精品免费女| 久久亚洲精品国产精品紫薇| 成人视屏免费看| 香蕉影视欧美成人| 欧美国产亚洲另类动漫| 色呦呦国产精品| 久久精品国产一区二区| 国产女人18毛片水真多成人如厕| 在线观看区一区二| 日韩中文字幕亚洲一区二区va在线 | 欧美刺激午夜性久久久久久久| 麻豆免费看一区二区三区| 欧美va亚洲va在线观看蝴蝶网| 成人黄页毛片网站| 日本 国产 欧美色综合| 国产精品久久久久永久免费观看| 欧美精品自拍偷拍| 国产v综合v亚洲欧| 三级精品在线观看| 亚洲久草在线视频| 欧美无人高清视频在线观看| 激情另类小说区图片区视频区| 国产丝袜欧美中文另类| 欧美日韩不卡一区| 99久久综合狠狠综合久久| 日本欧美加勒比视频| 亚洲欧美色综合| 国产亚洲欧美激情| 日韩一区二区三区免费观看| 91欧美激情一区二区三区成人| 久久国产精品免费| 亚洲成人一区在线| 尤物在线观看一区| 日韩毛片视频在线看| 久久精品亚洲麻豆av一区二区| 欧美日韩在线不卡| jlzzjlzz欧美大全| 不卡一区中文字幕| 国产伦理精品不卡| 老色鬼精品视频在线观看播放| 亚洲电影一级片| 亚洲欧美aⅴ...| 中文字幕精品综合| 国产视频一区二区在线| 精品区一区二区| 欧美videofree性高清杂交| 欧美精品日韩综合在线| 欧美亚洲综合一区| 色天使久久综合网天天| 欧美大尺度电影在线| 欧美色视频一区| 91黄色免费观看| 91久久精品一区二区| 99久久精品99国产精品| 不卡的看片网站| 99热精品国产| 在线国产亚洲欧美| 顶级嫩模精品视频在线看| 成人免费av在线| 色久综合一二码| 欧美日韩你懂的| 91精品国产色综合久久| 欧美另类videos死尸| 日韩欧美在线影院| 久久久久国产精品麻豆ai换脸| 国产亚洲成av人在线观看导航| 久久久国产精品不卡| 中文字幕免费一区| 亚洲日穴在线视频| 亚洲国产一区视频| 丝袜美腿亚洲一区| 久久国产视频网| 成人av电影观看| 在线看国产一区二区| 91精品国产色综合久久不卡电影| www国产成人免费观看视频 深夜成人网| 精品福利av导航| 国产精品免费丝袜| 亚洲国产精品久久不卡毛片| 久久精品国产一区二区| 成人黄动漫网站免费app| 色婷婷久久久久swag精品| 欧美日韩一区二区三区免费看| 日韩一卡二卡三卡| 136国产福利精品导航| 日韩1区2区日韩1区2区| 波多野结衣精品在线| 欧美人牲a欧美精品| 国产精品私房写真福利视频| 亚洲成av人片在www色猫咪| 国产乱人伦偷精品视频不卡| 91久久久免费一区二区| 国产性天天综合网| 亚洲动漫第一页| 国产精品一区二区在线看| 欧美在线观看18| 久久精品视频免费| 五月天丁香久久| 91视频国产资源| 国产欧美一区在线| 麻豆91免费看| 欧美男男青年gay1069videost| 国产精品传媒视频| 国产成人精品网址| 欧美成人一区二区| 日韩和的一区二区| 色伊人久久综合中文字幕| 久久综合色之久久综合| 日本不卡中文字幕| 另类人妖一区二区av| 日韩av电影免费观看高清完整版| 欧美日韩国产综合一区二区三区 | 亚洲美腿欧美偷拍| 极品少妇xxxx精品少妇偷拍| 色香蕉久久蜜桃| 国产免费成人在线视频| 热久久一区二区| 欧美性感一区二区三区| 亚洲你懂的在线视频| 不卡一区二区三区四区| 欧美日韩一区小说| 亚洲人成伊人成综合网小说| 国产亚洲欧美日韩日本| 另类的小说在线视频另类成人小视频在线 | 奇米色777欧美一区二区| 久久草av在线| 男人的天堂亚洲一区| 久久久综合激的五月天| 亚洲欧美日韩国产手机在线| 国产精品系列在线观看| 久久久蜜桃精品| 丁香另类激情小说| 欧美国产综合色视频| 国产69精品久久777的优势| 国产亚洲欧美日韩俺去了| 99久久国产综合精品女不卡| 狠狠狠色丁香婷婷综合激情| 91精品国产色综合久久不卡电影 | 亚洲欧洲性图库| 色悠悠久久综合| 色网站国产精品| 国模大尺度一区二区三区| 亚洲一区二区在线免费观看视频| 久久久99精品久久| 亚洲成人在线免费| 成人免费电影视频| 久久综合久久综合九色| 欧美日韩在线播放三区四区| 中文字幕一区二区三区在线不卡| 国产乱国产乱300精品| 日韩欧美中文字幕精品| 欧美色网一区二区| 自拍偷自拍亚洲精品播放| 丁香六月久久综合狠狠色| 久久久久久一级片| 日韩一区二区三区视频| 亚洲成人精品一区| 欧美人与性动xxxx| 欧美午夜一区二区| 亚洲午夜三级在线| 亚洲欧美日韩国产一区二区三区| 中文字幕日韩欧美一区二区三区| 久久久精品日韩欧美| 成人一区二区三区| 国产片一区二区| 国产麻豆欧美日韩一区| 久久精品一区二区三区不卡牛牛| 国产精品白丝av| 成人一道本在线| av在线不卡电影| 日本韩国欧美一区二区三区| 香蕉久久一区二区不卡无毒影院 | 欧美丝袜自拍制服另类| 欧美在线|欧美| 欧美一级电影网站| 国产在线一区二区综合免费视频| 久久婷婷久久一区二区三区| 久久久国产综合精品女国产盗摄|