从 Sitecore 文件项获取流? (C#)
Get stream from Sitecore File Item? (C#)
我的一个项目上有一个文件字段。我正在尝试实现上传页面上的功能,其工作方式如下:
<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,这是错误的类型。我不确定是否应该将该项目作为媒体对象获取。
您应该使用从 GetStream()
方法收到的 .Stream
属性:
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)
我的一个项目上有一个文件字段。我正在尝试实现上传页面上的功能,其工作方式如下:
<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,这是错误的类型。我不确定是否应该将该项目作为媒体对象获取。
您应该使用从 GetStream()
方法收到的 .Stream
属性:
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)