2016-10-21 24 views
0

我在其中一個項目上有一個文件字段。我想實現我有一個上傳頁面上的功能,它的工作原理是這樣的:從Sitecore文件項獲取流? (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的,這是錯誤的類型。我不確定我是否應該將該項目作爲媒體對象。

回答

4

你應該用你從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) 
+0

只是一個一般性評論:請使用**使用**指令/ **關閉流**來避免內存泄漏 –