Cor*_*ett 5 sitecore sitecore6 sitecore-media-library
这是我尝试过的,似乎没有用.我没有收到任何错误,但它似乎也没有将文件添加到媒体库.
using(new Sitecore.SecurityModel.SecurityDisabler())
{
if(myFileControl.HasFile)
{
MediaCreatorOptions _options = new MediaCreatorOptions();
_options.Database = Factory.GetDatabase("master");
_options.FileBased = false;
_options.IncludeExtensionInItemName = false;
_options.KeepExisting = false;
_options.Versioned = false;
_options.Destination = "/sitecore/media library";
MediaItem _newFile = MediaManager.Creator.CreateFromStream(myFileControl.FileContent, myFileControl.FileName, _options);
}
}
Run Code Online (Sandbox Code Playgroud)
我最大的问题是我并不真正了解一些不同的参数和属性.MediaCreatorOptions的"目的地"属性是什么?它应该只是一个文件夹吗?它应该也有项目名称吗?CreateFromStream方法的三个参数是什么?第一个似乎是流 - 我明白了.但第二个是"FileName".这应该是什么?如果我是从Stream创建的,为什么我需要告诉Sitecore FileName?
任何帮助,将不胜感激.
我认为您的问题是您没有为 Sitecore API 调用使用正确的选项。您没有真正的目的地..您可以在其中指定将成为您的项目的Sitecore项目...而不仅仅是一个文件夹。您似乎正在尝试创建媒体库项目。
根据 SDN 上的内容 API 书籍:
如何使用 API 创建媒体项目
您可以使用 Sitecore.Resources.Media.MediaCreator 和 Sitecore.Resources.Media.MediaCreatorOptions 类从文件创建媒体项目。例如,要从文件 C:\temp\sample.jpg 在 Master 数据库中创建媒体项 /Sitecore/Media Library/Images/Sample:
Sitecore.Resources.Media.MediaCreatorOptions options = new Sitecore.Resources.Media.MediaCreatorOptions();
options.Database = Sitecore.Configuration.Factory.GetDatabase("master");
options.Language = Sitecore.Globalization.Language.Parse(Sitecore.Configuration.Settings.DefaultLanguage);
options.Versioned = Sitecore.Configuration.Settings.Media.UploadAsVersionableByDefault;
options.Destination = "/sitecore/media library/images/Sample";
options.FileBased = Sitecore.Configuration.Settings.Media.UploadAsFiles;
Sitecore.Resources.Media.MediaCreator creator = new Sitecore.Resources.Media.MediaCreator();
Sitecore.Data.Items.MediaItem sample = creator.CreateFromFile(@"C:\temp\sample.jpg",options)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4348 次 |
| 最近记录: |