4
是否有可能存儲圖像蒙戈GridFS的直接形成的URL,這是我從API得到什麼?或者我必須在本地存儲它,然後將它插入到mongo中?希望存儲圖像GridFS的從給定的URL
我試圖直接從URL插入,但C#司機給我,URI不受支持的錯誤..
是否有可能存儲圖像蒙戈GridFS的直接形成的URL,這是我從API得到什麼?或者我必須在本地存儲它,然後將它插入到mongo中?希望存儲圖像GridFS的從給定的URL
我試圖直接從URL插入,但C#司機給我,URI不受支持的錯誤..
的MongoGridFS類實現.NET的流API,所以你應該能夠使用MemoryStream保存Web響應並插入到GridFS中。
try
{
var server = MongoServer.Create("mongodb://192.168.1.8:27017/imgdb?safe=true");
var db = server.GetDatabase("imgdb");
string fileName = "logo-mongodb.png";
// Get image from URL or API
WebRequest req = WebRequest.Create("http://media.mongodb.org/" + fileName);
WebResponse response = req.GetResponse();
Console.WriteLine("Response length is " + response.ContentLength + " bytes");
// Copy from WebResponse to MemoryStream
MemoryStream memStream;
using (Stream responseStream = response.GetResponseStream())
{
memStream = new MemoryStream();
byte[] buffer = new byte[1024];
int byteCount;
do
{
byteCount = responseStream.Read(buffer, 0, buffer.Length);
memStream.Write(buffer, 0, byteCount);
} while (byteCount > 0);
responseStream.Close();
}
// Reset to beginning of stream
memStream.Seek(0, SeekOrigin.Begin);
// Save to GridFS
var gridFsInfo = db.GridFS.Upload(memStream, fileName);
// Success!
Console.WriteLine("Success!");
}
catch (Exception err)
{
Console.WriteLine("Something went wrong: "+err.Message);
}
我在response.GetResponseStream()\t無法隱式轉換類型 'System.IO.Stream' 到 'System.IO.MemoryStream' 獲得鑄造錯誤。我還用它在控制檯應用程序,而不是網站 – 2012-07-22 02:07:47
@StewieGriffin:道歉,粘貼僞造的版本。與一個工程進行更新。 – Stennie 2012-07-22 08:31:57