我的一件商品上有一个文件字段。我试图在上传页面上实现我的功能,其工作方式如下:
<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对象。
答案 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)