Sitecore检查媒体库中的mediaItem的快速方法是图像或图片

时间:2015-10-23 12:54:31

标签: sitecore sitecore7.2

对于Sitecore'媒体库中的项目':

   MediaItem mediaItem = Sitecore.Context.Database.GetItem("{E47591D0-48D2-4543-80E4-3836B02AA1A8}");  

以上项目是图片" Tulips.jpg"。

如何从后面的代码中检查上面的项目实际上是图片/图片

3 个答案:

答案 0 :(得分:7)

获得MediaItem对象后,即可执行此操作:

MediaItem mediaItem = ...

bool isPicture = mediaItem.MimeType.StartsWith("image/");

这是有效的,因为MIME types的图像形成如下:image/...。例如:

  • 图像/ BMP
  • 图像/ GIF
  • 图像/ JPEG

答案 1 :(得分:2)

Dmytro Shevchenko建议的替代方案是使用Sitecore的API检查包含与进行字符串比较相反的图像的Template的{​​{1}}。

将图片上传到MediaItem时,会存储MediaLibraryversioned模板以及unversionedImage

因此,要检查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”

的路径

您可以在将项目转换为媒体项目之前检查该项目。