예제 #1
0
        /// <summary>
        /// GridFS文件操作——下载
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public byte[] DownLoad(string fileName)
        {
            var gridfs = new GridFSBucket(database);

            byte[] fileData = gridfs.DownloadAsBytesByName(fileName);
            return(fileData);
        }
        public async Task <List <Pattern> > GetPatternsAsync()
        {
            List <Pattern> patterns = new List <Pattern>();

            var collection = _database.GetCollection <Occurance>("UserActivity");

            var documents = await collection.Find(_ => true).ToListAsync();

            //var documents = collection.AsQueryable();

            foreach (var document in documents)
            {
                try
                {
                    var bytes = _bucket.DownloadAsBytesByName(document.PatternName);
                    patterns.Add(new Pattern()
                    {
                        ImageBytes = bytes,
                        Name       = document.PatternName
                    });
                }
                catch (Exception e)
                {
                    Console.WriteLine("Not found byte[] with such name in the DataBase!\n\n\n");
                    Console.WriteLine(e);
                }
            }
            return(patterns);
        }
예제 #3
0
        private void button7_Click(object sender, EventArgs e)
        {
            var client   = new MongoClient("mongodb://localhost");
            var database = client.GetDatabase("docs");
            var fs       = new GridFSBucket(database);

            var test = fs.DownloadAsBytesByName("Test");

            //System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
            //Image img = (Image)converter.ConvertFrom(test);

            //MemoryStream mem = new MemoryStream(test);

            Image returnImage = null;

            using (MemoryStream ms = new MemoryStream(test))
            {
                returnImage = Image.FromStream(ms);
            }
            //return returnImage;
            //Bitmap x = new Bitmap(mem, true);

            this.pictureBox1.Image  = returnImage;
            this.pictureBox1.Height = returnImage.Height;
            this.pictureBox1.Width  = returnImage.Width;
        }
예제 #4
0
        private void button10_Click(object sender, EventArgs e)
        {
            var client   = new MongoClient("mongodb://localhost");
            var database = client.GetDatabase("docs");
            var fs       = new GridFSBucket(database);

            //var aaa = fs.Find()
            var test = fs.DownloadAsBytesByName("Muzika");

            MemoryStream memStream = new MemoryStream(test);

            //OpenFileDialog open = new OpenFileDialog();
            //open.Filter = "Audio File (*.mp3;*.wav)|*.mp3;*.wav;";
            //if (open.ShowDialog() != DialogResult.OK) return;

            DisposeWave();

            // if (open.FileName.EndsWith(".mp3"))
            // {
            NAudio.Wave.WaveStream pcm = NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(new NAudio.Wave.Mp3FileReader(memStream));
            stream = new NAudio.Wave.BlockAlignReductionStream(pcm);
            // }
            // else if (open.FileName.EndsWith(".wav"))
            //{
            //    NAudio.Wave.WaveStream pcm = new NAudio.Wave.WaveChannel32(new NAudio.Wave.WaveFileReader(open.FileName));
            //    stream = new NAudio.Wave.BlockAlignReductionStream(pcm);
            //}
            //else throw new InvalidOperationException("Not a correct audio file type.");

            output = new NAudio.Wave.DirectSoundOut();
            output.Init(stream);
            output.Play();
        }
        public byte[] DownloadAsBytesByName(string fileName, GridFSDownloadByNameOptions options = null)
        {
            MongoClient client = GetClient(m_connectionStr);
            var         db     = client.GetDatabase(DatabaseName);
            var         bucket = new GridFSBucket(db, BucksOptions);

            return(bucket.DownloadAsBytesByName(fileName, options));
        }
예제 #6
0
        public byte[] Retrieve(Guid id)
        {
            var database    = GetDatabase();
            var fileStorage = new GridFSBucket(database, new GridFSBucketOptions
            {
                BucketName = "images"
            });

            return(fileStorage.DownloadAsBytesByName(id.ToString()));
        }
예제 #7
0
        public static byte[] LoadSoundFromGridFS(string reprezentacija)
        {
            var client   = new MongoClient("mongodb://localhost");
            var database = client.GetDatabase("docs");
            var fs       = new GridFSBucket(database);

            var data = fs.DownloadAsBytesByName(reprezentacija);

            return(data);
        }
        public Document GetDocument(string documentKey)
        {
            var bson = metadataCollection.Find($"{{{IdKey}: '{documentKey}'}}").FirstOrDefault();

            if (bson == null)
            {
                return(null);
            }
            var metadata = ConvertBsonToMetadata(bson);
            var file     = fileBucket.DownloadAsBytesByName(documentKey);

            return(new Document(metadata.DocumentKey, metadata.Data, file));
        }
예제 #9
0
 //Obtiene archivo
 public List <byte> GetFile(string fileName)
 {
     try
     {
         var archivo2      = gridFsBucket.DownloadAsBytesByName(fileName);
         var listBytesFile = archivo2.ToList();
         return(listBytesFile);
     }
     catch (Exception)
     {
         return(null);
     }
 }
예제 #10
0
        public IActionResult Get(string id, string name)
        {
            name = HttpUtility.UrlEncode(name);
            bool         checkId  = ObjectId.TryParse(id, out ObjectId objectId);
            var          database = _client.GetDatabase("UploadDB");
            GridFSBucket g        = new GridFSBucket(database);
            var          obj      = checkId ? g.DownloadAsBytes(objectId) : g.DownloadAsBytesByName(name);

            if (obj != null)
            {
                return(File(obj, "application/octet-stream", name));
            }
            return(BadRequest("Not Find!"));
        }
예제 #11
0
        public Image GetImageFileByName(string mFileName)
        {
            Image img = null;

            try
            {
                MemoryStream ms = new MemoryStream(mGridFSBucket.DownloadAsBytesByName(mFileName));
                img = Image.FromStream(ms);
            }
            catch
            {
            }

            return(img);
        }
        public void TestSetContent()
        {
            // Arrange
            var ps     = CreatePowerShell();
            var bucket = new GridFSBucket(_db);

            // Act
            ps.AddCommand("Set-Content")
            .AddParameter("Path", "mongodb:")
            .AddParameter("Name", "abc")
            .AddParameter("Value", "foo")
            .Invoke();

            // Assert
            bucket.DownloadAsBytesByName("abc").Should().BeEquivalentTo(Encoding.ASCII.GetBytes("foo"));
        }
예제 #13
0
        public Stream GetFileStream(string filePath)
        {
            string[] stringArray = filePath.Split('\\');
            if (stringArray.Length < 2)
            {
                new FileUtilsException($"文件路径不正确:{filePath}");
            }
            GridFSBucket fileSystem = new GridFSBucket(db, new GridFSBucketOptions {
                BucketName = stringArray[0]
            });
            string fileName = filePath.Substring(stringArray[0].Length + 1, filePath.Length - stringArray[0].Length - 1);

            byte[]       bytes = fileSystem.DownloadAsBytesByName(fileName);
            MemoryStream ms    = new MemoryStream(bytes);

            return(ms);
        }
예제 #14
0
        private void button6_Click(object sender, EventArgs e)
        {
            //string host = "localhost";
            //int port = 27017;
            //string databaseName = "docs";

            //var _client = new MongoClient();
            //// var _database = (MongoDatabase)_client.GetDatabase("docs");


            //MemoryStream m = new MemoryStream();

            //var grid = new MongoGridFS(new MongoServer(new MongoServerSettings { Server = new MongoServerAddress(host, port) }), databaseName, new MongoGridFSSettings());

            //var file = grid.FindOne("Test");
            ////MongoGridFSStream read = grid.OpenRead("Test");
            ////read.CopyTo(m);
            //Image slika;
            //var newFileName = "D:\\new_Untitled.jpg";
            //using (var stream = file.OpenRead())
            //{
            //    var bytes = new byte[stream.Length];
            //    stream.Read(bytes, 0, (int)stream.Length);



            //    using (var newFs = new FileStream(newFileName, FileMode.Create))
            //    {

            //        newFs.Write(bytes, 0, bytes.Length);
            //        //slika = Image.FromStream(newFs);
            //    }
            //}

            var client   = new MongoClient("mongodb://localhost");
            var database = client.GetDatabase("docs");
            var fs       = new GridFSBucket(database);

            //var aaa = fs.Find()
            var test = fs.DownloadAsBytesByName("nebo");

            MemoryStream stream = new MemoryStream(test);

            this.pictureBox1.Image = Image.FromStream(stream);
        }
예제 #15
0
        public static byte[] LoadSoundFromGridFS(string reprezentacija)
        {
            try
            {
                var client   = new MongoClient("mongodb://localhost");
                var database = client.GetDatabase("docs");
                var fs       = new GridFSBucket(database);

                var data = fs.DownloadAsBytesByName(reprezentacija);

                return(data);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(null);
            }
        }
예제 #16
0
        public static Image LoadImageFromGridFS(string imeSlike)
        {
            try
            {
                var client   = new MongoClient("mongodb://localhost");
                var database = client.GetDatabase("docs");
                var fs       = new GridFSBucket(database);


                var data = fs.DownloadAsBytesByName(imeSlike);

                MemoryStream stream = new MemoryStream(data);

                return(Image.FromStream(stream));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(null);
            }
        }
예제 #17
0
        public Image BuscarImagem(string nome)
        {
            Image        image;
            GridFSBucket bucket = new GridFSBucket(database, new GridFSBucketOptions {
                BucketName     = "imagens",// Bucket name tem que ser igual
                WriteConcern   = WriteConcern.WMajority,
                ReadPreference = ReadPreference.Secondary
            });
            // var filter = Builders<GridFSFileInfo>.Filter.Eq(x => x.Filename, "Cartao2_inicial.png");
            // var buscal = bucket.Find(filter);

            var bytes = bucket.DownloadAsBytesByName(nome); // CASO NÃO ENCONTRE DARÁ ERRO

            image = Image.FromStream(new System.IO.MemoryStream(bytes));

            //using (image = Image.FromStream(new System.IO.MemoryStream(bytes))) {
            //    image.Save("output.jpg", ImageFormat.Png);  // Or Png
            //}

            return(image);
        }
        protected override void CallMethod(CancellationToken cancellationToken)
        {
            var bucket = new GridFSBucket(_database, _bucketOptions);

            bucket.DownloadAsBytesByName(_fileName, _downloadOptions, cancellationToken);
        }
 // protected methods
 protected byte[] InvokeMethod(GridFSBucket bucket)
 {
     return(bucket.DownloadAsBytesByName(_filename, _options));
 }
 // protected methods
 protected byte[] InvokeMethod(GridFSBucket bucket)
 {
     return bucket.DownloadAsBytesByName(_filename, _options);
 }
예제 #21
0
 /// <summary>
 /// 下载成byte数组
 /// </summary>
 /// <param name="filename">文件名</param>
 /// <returns></returns>
 public Byte[] DownloadAsBytesByName(string filename)
 {
     Byte[] bytes = bucket.DownloadAsBytesByName(filename);
     return(bytes);
 }