从Sitecore文件项获取流? (C#)

时间:2016-10-21 15:57:59

标签: c# file stream sitecore media

我的一件商品上有一个文件字段。我试图在上传页面上实现我的功能,其工作方式如下:

<input type="file" id="UpdateFile" runat="server" />
var file = UpdateFile.PostedFile;
Stream stream = file.InputStream;
StreamReader streamReader = new StreamReader(stream);
var helper = new VarietySelectorDataHelper("master");
var csv = new CsvReader(streamReader);

我不知道如何使用Sitecore文件字段来完成此操作。这就是我到目前为止所做的:

var importFile = glassItem.CSV;
var fileItem = _db.GetItem(importFile.Id.ToString()); // get the Item from the media library
var media = MediaManager.GetMedia(fileItem);
var stream = media.GetStream();
StreamReader streamReader = new StreamReader(stream);

但是,我无法将MediaStream传递给StreamReader,它的类型错误。我不确定我是否应该将该项目作为Media对象。

1 个答案:

答案 0 :(得分:5)

您应该使用.Stream方法获得的GetStream()属性:

new StreamReader(MediaManager.GetMedia(sampleMedia).GetStream().Stream)

所以你的代码就是这样:

var importFile = glassItem.CSV;
var fileItem = _db.GetItem(importFile.Id.ToString()); // get the Item from the media library
var media = MediaManager.GetMedia(fileItem);
var stream = media.GetStream().Stream; // <-- check this line
new StreamReader(stream)