MongoDB V2 C# 获取文件名
MongoDB V2 C# get file name
GridFSFileInfo fileInfo;
var options = new GridFSFindOptions
{
Limit = 1
};
FilterDefinition<GridFSFileInfo> filterDefinition = Builders<GridFSFileInfo>.Filter
.Where(ee => ee.Id.Equals(new ObjectId(fileId)));
using (var cursor = _mongoDbHelper.Bucket.Find(filterDefinition, options))
{
fileInfo = cursor.ToList().FirstOrDefault();
}
byte[] file = _mongoDbHelper.Bucket.DownloadAsBytes(new ObjectId(fileId));
UploadedFile uploadedFile = new UploadedFile(fileInfo.Filename, file);
return uploadedFile;
我在 c# 中使用 mongoDB v2,我想下载 byte[] 并通过提供 fileId 获取文件名,但在行中:
_mongoDbHelper.Bucket.Find(filterDefinition, options)
它抛出一个异常:
System.InvalidOperationException
消息是:
{document}.Id is not supported.
但 GridFSFileInfo 有一个 属性 名称 ID。
我怎样才能找到文件名?
我找到了这个问题的不同答案:
var stream = _mongoDbHelper.Bucket.OpenDownloadStream(new ObjectId(fileId));
var fileName = stream?.FileInfo.Filename;
GridFSFileInfo fileInfo;
var options = new GridFSFindOptions
{
Limit = 1
};
FilterDefinition<GridFSFileInfo> filterDefinition = Builders<GridFSFileInfo>.Filter
.Where(ee => ee.Id.Equals(new ObjectId(fileId)));
using (var cursor = _mongoDbHelper.Bucket.Find(filterDefinition, options))
{
fileInfo = cursor.ToList().FirstOrDefault();
}
byte[] file = _mongoDbHelper.Bucket.DownloadAsBytes(new ObjectId(fileId));
UploadedFile uploadedFile = new UploadedFile(fileInfo.Filename, file);
return uploadedFile;
我在 c# 中使用 mongoDB v2,我想下载 byte[] 并通过提供 fileId 获取文件名,但在行中:
_mongoDbHelper.Bucket.Find(filterDefinition, options)
它抛出一个异常:
System.InvalidOperationException
消息是:
{document}.Id is not supported.
但 GridFSFileInfo 有一个 属性 名称 ID。 我怎样才能找到文件名?
我找到了这个问题的不同答案:
var stream = _mongoDbHelper.Bucket.OpenDownloadStream(new ObjectId(fileId));
var fileName = stream?.FileInfo.Filename;