Sitecore媒体库MaxSize

周杰伦

在Sitecore中,我只想为图像文件设置Upload MaxSize。我们可以更新Media.MaxSizeInDatabase来设置MaxSize,但是此设置包括媒体库中的所有文件。

有什么方法可以只为图像文件设置MaxSize吗?或者,我可以为此创建任何验证吗?

先感谢您!!

=========更新==========

我尝试使用所有代码和设置,但无法正常工作。我认为代码很好,但是我可能必须确保配置的位置。当我在顶部添加“ xmlns:patch”属性时,如下所示

<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">

它显示错误“无法识别的属性xmlns:patch”。因此,我在web.config的“ / configuration / sitecore”元素中添加了配置,如下所示

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    .....
    <sitecore database="SqlServer">
        <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
            <sitecore>
                <processors>
                    <uiUpload>
                        <processor mode="on" type="ImageMaxSize.ImageItemValidator2, Sitecore.Kernel" patch:before="processor[@type='Sitecore.Pipelines.Upload.CheckSize, Sitecore.Kernel']">
                            <restrictedExtensions hint="raw:AddRestrictedExtension">
                                <!-- Be sure to prefix with a dot -->
                                <extension>.jpg</extension>
                                <extension>.jepg</extension>
                                <extension>.png</extension>
                                <extension>.bmp</extension>
                            </restrictedExtensions>
                        </processor>
                    </uiUpload>
                </processors>
            </sitecore>
        </configuration>

这不行

Jammykam

您可以使用自己的处理器进行修补,uiUpload以检查某些类型的文件大小,这与Mike Reynolds的帖子类似,可以限制某些类型的文件上传

public class ImageCheckSize : UploadProcessor
{       
    public List<string> RestrictedExtensions { get; set; }

    public ImageCheckSize()
    {
        RestrictedExtensions = new List<string>();
    }

    public void Process(UploadArgs args)
    {
        Assert.ArgumentNotNull((object) args, "args");
        if (args.Destination == UploadDestination.File)
            return;

        foreach (string index in args.Files)
        {
            HttpPostedFile file = args.Files[index];
            if (!string.IsNullOrEmpty(file.FileName) && IsRestrictedExtension(file.FileName))
            {
                if ((long) file.ContentLength > MaxImageSizeInDatabase)
                {
                    args.ErrorText = string.Format("The image \"{0}\" is too big to be uploaded. The maximum size for uploading images is {1}.", file.FileName, MainUtil.FormatSize(MaxImageSizeInDatabase));
                    Log.Warn(args.ErrorText, this);
                    args.AbortPipeline();
                    break;
                }
            }
        }
    }

    private bool IsRestrictedExtension(string filename)
    {
        return RestrictedExtensions.Exists(restrictedExtension => string.Equals(restrictedExtension, Path.GetExtension(filename), StringComparison.CurrentCultureIgnoreCase));
    }

    public static long MaxImageSizeInDatabase
    {
        get
        {
            return Sitecore.Configuration.Settings.GetLongSetting("Media.MaxImageSizeInDatabase", 524288000L);
        }
    }
}

然后添加所需的配置更改。/App_Config/Includes(例如ImageSizeCheck.config)中创建一个新的配置文件

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">

  <sitecore>
    <processors>
      <uiUpload>
        <processor mode="on" type="Custom.Business.Pipeline.Upload.ImageCheckSize, Custom.Business"
                   patch:before="processor[@type='Sitecore.Pipelines.Upload.CheckSize, Sitecore.Kernel']">
          <restrictedExtensions hint="list">
            <extension>.jpg</extension>
            <extension>.png</extension>
          </restrictedExtensions>
        </processor>
      </uiUpload>
    </processors>

    <settings>
      <setting name="Media.MaxImageSizeInDatabase" value="1MB" />
    </settings>

  </sitecore>
</configuration>

attachFile如果用户将新文件附加到现有的媒体项目上,您还需要在处理器中添加另一个处理器以进行处理-使用dotPeek查看中的实现Sitecore.Pipelines.Attach.CheckSize,Sitecore.Kernel

需要注意的是,显示的错误消息不太友好,但是错误已正确记录在日志文件中:(

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Sitecore从媒体库显示电影

来自分类Dev

Sitecore媒体库和Azure CDN

来自分类Dev

Sitecore:如何通过URL获得媒体库项目?

来自分类Dev

打开Sitecore媒体库时获取404

来自分类Dev

Sitecore-媒体库中的上传文件错误

来自分类Dev

Sitecore:如何通过URL获得媒体库项目?

来自分类Dev

如何使用Sitecore Rocks向媒体库添加图像

来自分类Dev

Sitecore:从 url 将图像保存在媒体库中

来自分类Dev

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

来自分类Dev

Sitecore中是否可以显示用户无权访问的媒体库项目的链接?

来自分类Dev

将图片上传到Sitecore媒体库时,为什么在Firefox中出现错误?

来自分类Dev

如何将媒体库图像从sitecore下载到本地文件夹

来自分类Dev

Sitecore字段,用于从媒体库中选择多个文件并能够上传文件

来自分类Dev

如何将媒体库图像从sitecore下载到本地文件夹

来自分类Dev

从服务器将图像上传到Sitecore媒体库

来自分类Dev

如何在Sitecore中的媒体库中更改文件大小单位

来自分类Dev

如何停止在Sitecore媒体库文件夹中上传WFFM媒体文件并获取已上传媒体文件的字节数组

来自分类Dev

Rich Text字段编辑器中图像的src属性中的Sitecore参考媒体库图像

来自分类Dev

浏览媒体库未打开

来自分类Dev

SVG文件到媒体库

来自分类Dev

检测媒体库ios的权限

来自分类Dev

在Kindle Fire上访问媒体库

来自分类Dev

SVG文件到媒体库

来自分类Dev

防止附件从媒体库中删除

来自分类Dev

从IOS WebView访问媒体库

来自分类Dev

什么要转码我的媒体库?

来自分类Dev

从Wordpress媒体库获取单个特定图像

来自分类Dev

媒体库中存储的文件的视频播放

来自分类Dev

从Umbraco 7中的媒体库显示图像

Related 相关文章

  1. 1

    Sitecore从媒体库显示电影

  2. 2

    Sitecore媒体库和Azure CDN

  3. 3

    Sitecore:如何通过URL获得媒体库项目?

  4. 4

    打开Sitecore媒体库时获取404

  5. 5

    Sitecore-媒体库中的上传文件错误

  6. 6

    Sitecore:如何通过URL获得媒体库项目?

  7. 7

    如何使用Sitecore Rocks向媒体库添加图像

  8. 8

    Sitecore:从 url 将图像保存在媒体库中

  9. 9

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

  10. 10

    Sitecore中是否可以显示用户无权访问的媒体库项目的链接?

  11. 11

    将图片上传到Sitecore媒体库时,为什么在Firefox中出现错误?

  12. 12

    如何将媒体库图像从sitecore下载到本地文件夹

  13. 13

    Sitecore字段,用于从媒体库中选择多个文件并能够上传文件

  14. 14

    如何将媒体库图像从sitecore下载到本地文件夹

  15. 15

    从服务器将图像上传到Sitecore媒体库

  16. 16

    如何在Sitecore中的媒体库中更改文件大小单位

  17. 17

    如何停止在Sitecore媒体库文件夹中上传WFFM媒体文件并获取已上传媒体文件的字节数组

  18. 18

    Rich Text字段编辑器中图像的src属性中的Sitecore参考媒体库图像

  19. 19

    浏览媒体库未打开

  20. 20

    SVG文件到媒体库

  21. 21

    检测媒体库ios的权限

  22. 22

    在Kindle Fire上访问媒体库

  23. 23

    SVG文件到媒体库

  24. 24

    防止附件从媒体库中删除

  25. 25

    从IOS WebView访问媒体库

  26. 26

    什么要转码我的媒体库?

  27. 27

    从Wordpress媒体库获取单个特定图像

  28. 28

    媒体库中存储的文件的视频播放

  29. 29

    从Umbraco 7中的媒体库显示图像

热门标签

归档