对于Sitecore'媒体库中的项目':
MediaItem mediaItem = Sitecore.Context.Database.GetItem("{E47591D0-48D2-4543-80E4-3836B02AA1A8}");
以上项目是图片" Tulips.jpg"。
如何从后面的代码中检查上面的项目实际上是图片/图片?
答案 0 :(得分:7)
获得MediaItem
对象后,即可执行此操作:
MediaItem mediaItem = ...
bool isPicture = mediaItem.MimeType.StartsWith("image/");
这是有效的,因为MIME types的图像形成如下:image/...
。例如:
答案 1 :(得分:2)
Dmytro Shevchenko建议的替代方案是使用Sitecore的API检查包含与进行字符串比较相反的图像的Template
的{{1}}。
将图片上传到MediaItem
时,会存储MediaLibrary
或versioned
模板以及unversioned
或Image
。
因此,要检查jpeg
是否为图像,您可以执行以下操作;
mediaItem
然后只需传递public ID ImageUnversioned = new ID("{F1828A2C-7E5D-4BBD-98CA-320474871548}");
public ID JpegUnversioned = new ID("{DAF085E8-602E-43A6-8299-038FF171349F}");
public ID ImageVersioned = new ID("{C97BA923-8009-4858-BDD5-D8BE5FCCECF7}");
public ID JpegVersioned = new ID("{EB3FB96C-D56B-4AC9-97F8-F07B24BB9BF7}");
public bool IsImage(Item mediaItem)
{
return mediaItem.TemplateID.Equals(ImageUnversioned)
|| mediaItem.TemplateID.Equals(JpegUnversioned)
|| mediaItem.TemplateID.Equals(ImageVersioned)
|| mediaItem.TemplateID.Equals(JpegVersioned);
}
,如下所示;
mediaItem
bool isImageOrPicture = IsImage(mediaItem);
模板来自Jpeg
模板,因此Dmytro Shevchenko以递归方式检查项目的所有基本模板。实施如下:
Image
答案 2 :(得分:1)
Sitecore在Sitecore Item类上有一个帮助 IsMediaItem
Sitecore.Context.Item.Paths.IsMediaItem
此代码检查项目是否包含“sitecore / Media library”
的路径您可以在将项目转换为媒体项目之前检查该项目。