C#, MongoDB GridFs ile nasıl fotoğraf gibi dosyaları saklamak için?
Arka uç benim gibi mongodb ile web uygulaması geliştiriyorum. Kullanıcılar profillerine resim yüklemek için bir-bağlantılı profil pic gibi istiyorum. MVC2 ile SEO sayfası kullanıyorum ve GridFs kütüphane ikili olarak büyük dosya türlerini depolamak için kullanılan okumuştum. Her yerde bu nasıl yapılır gibi ipuçları için baktım ama mongodb# apı veya GridFs C C için herhangi bir belge yok#. Çok şaşırdım ve kafam karıştı, gerçekten beyni daha iyi olurdu.
Aslında mongodb bir koleksiyon içine bir resim, bir kullanıcı tarafından yüklenen saklayan dosya yükleme denetleyicisi nasıl bir bilen var mı? Milyon kere teşekkürler!
Boşuna bu varyasyonları denedim.
Database db = mongo.getDB("Blog");
GridFile file = new GridFile(db);
file.Create("image.jpg");
var images = db.GetCollection("images");
images.Insert(file.ToDocument());
CEVAP
Örnek olarak aşağıdaki dosyayı kaydetmek ve gridfs(resmi mongodb sürücüsünü kullanarak): tekrar oku
var server = MongoServer.Create("mongodb://localhost:27020");
var database = server.GetDatabase("tesdb");
var fileName = "D:\\Untitled.png";
var newFileName = "D:\\new_Untitled.png";
using (var fs = new FileStream(fileName, FileMode.Open))
{
var gridFsInfo = database.GridFS.Upload(fs, fileName);
var fileId = gridFsInfo.Id;
ObjectId oid= new ObjectId(fileId);
var file = database.GridFS.FindOne(Query.EQ("_id", oid));
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);
}
}
}
Sonuçlar:
Dosya:
Parçaları toplama:
Bu yardım umut.
Nasıl saklamak için Node.js dağıtım ay...
Nasıl üretilen kod gibi belirli bir di...
Nasıl JSP dosyaları Java kod önlemek i...
Nasıl Jilet gibi bir ad almak için Say...
Nasıl C kaynak dosyaları arasında pay ...