Sitecore:GetMediaStream 始终为空

Sitecore: GetMediaStream is always null

我的主数据库和网络数据库 (Sitecore) 中存储了文件。 我需要阅读所选文件的内容。 这是我使用的代码:

MediaItem mediaItem = Sitecore.Context.Database.Items.GetItem(id);  
if (mediaItem != null)  
{  
    Stream stream = mediaItem.GetMediaStream();  
}

流总是空的! 我已经为几个文件尝试过这个。 如果我尝试下载文件,它们会成功下载。

我需要读取文件的内容。 mediaitem returns 所有元数据(文件名、扩展名等)正确。

这可能是什么原因?

我注意到 web.comfig 文件中也存在以下条目:

      <getMediaStream>
        <processor type="Sitecore.Resources.Media.ThumbnailProcessor, Sitecore.Kernel"/>
        <processor type="Sitecore.Resources.Media.ResizeProcessor, Sitecore.Kernel"/>
    <processor type="Sitecore.Resources.Media.GrayscaleProcessor, Sitecore.Kernel"/>
  </getMediaStream>

我不确定是否需要在此处添加任何内容。

您需要获取 Sitecore 项目,然后从中获取媒体项目。 Sitecore 项目和媒体项目是两个不同的东西。您可以从代表它的 Sitecore 项目中获取媒体项目。

请记住,sitecore 项目是包含所有字段(如类型、大小、名称等)的模板。媒体项目是真实的东西,jpeg、pdf 等。

Item item = Sitecore.Context.Database.Items.GetItem(id); 
MediaItem mediaItem = new MediaItem(item); 

if (mediaItem != null)  
{  
    Stream stream = mediaItem.GetMediaStream();  
}