Reputation: 4853
I have a file field on one of my items. I'm trying to implement the functionality that I have on an upload page, which works like this:
<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);
I don't know how to accomplish this though with a Sitecore file field. This is what I have so far:
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);
However, I can't pass the MediaStream into StreamReader, it's the wrong type. I'm not sure if I should even be getting the item as a Media object.
Upvotes: 0
Views: 1940
Reputation: 27132
You should use .Stream
property of what you recieved from GetStream()
method:
new StreamReader(MediaManager.GetMedia(sampleMedia).GetStream().Stream)
so your code will be like that:
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)
Upvotes: 5