我试图从媒体库加载一个xml文件,但我遇到了路径问题.我可以在xml文件位于实际服务器文件中时加载xml,或者当它位于另一个托管站点时加载xml,但是当文件位于媒体库中时则不能加载xml.xml文件是否必须是托管在某处的物理文件?
这是我检索媒体项路径的代码:
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item sampleItem = master.GetItem("/sitecore/media library/Files/eBooks/testxml");
Sitecore.Data.Items.Item sampleMedia = new Sitecore.Data.Items.MediaItem(sampleItem);
string url = Sitecore.StringUtil.EnsurePrefix('/', Sitecore.Resources.Media.MediaManager.GetMediaUrl(sampleMedia));
Run Code Online (Sandbox Code Playgroud)
然后,当我加载xml时,我正在执行以下操作:
XmlDocument xDoc = new XmlDocument();
xDoc.Load(Server.MapPath(url));
Run Code Online (Sandbox Code Playgroud)
它返回的路径是正确的,因为我已经测试过它将它放在一个锚标签中,看它是否会链接到xml文件,它确实如此.我在这个网站上发现了类似的帖子,但似乎都没有在xml.Load的上下文中处理媒体库项目.
任何关于这是否可能的信息或我可以做些什么来使其工作将非常感激.
谢谢.
使用Sitecore 7.5,我试图在媒体库中存储几个html文件.然后在我的子布局代码隐藏中,我试图抓住那些html文件的内部内容.
当我在服务器上存储html文件时,我有这个工作.我会使用"上传为文件"将文件上传到媒体库,然后使用以下代码阅读内容:
string filename = htmlMediaItem.Fields["File Path"].ToString();
string path = Server.MapPath(filename);
string content = System.IO.File.ReadAllText(path);
Run Code Online (Sandbox Code Playgroud)
但是我现在想要这样做而不将文件存储在服务器上,而只是将它们放在媒体库中.无论如何我能做到吗?
到目前为止,我一直很难找到有关该主题的信息.
谢谢.