【问题标题】:characters allowed on CQ5 file nameCQ5 文件名中允许的字符
【发布时间】:2013-08-20 19:00:06
【问题描述】:

在CQ5上使用CRXDE lite或其他UI界面上传文件(以dam文件夹为例)时,如果上传的文件有无效字符,系统会报错。

我刚刚发现 [] 不允许作为文件名的一部分。

但是当使用非UI界面上传文件时,例如SlingPostServlet,字符[被替换为百分比编码表示(%5D)并且没有产生错误。

是否有某种列表/文档可以显示 CQ5 中不允许使用的字符?

我正在使用 CQ5.4

谢谢

【问题讨论】:

    标签: aem jcr sling


    【解决方案1】:

    JCR 命名限制在 JCR 规范的 Repository Model 部分中描述。

    具体来说,不允许使用以下字符:

    (“/”, “:”, “[“, “]”, “|”, “*”)
    

    有一个 com.day.cq.commons.jcr.JcrUtil 类有一个 createValidName(title) 方法,它可以帮助你。默认情况下,STANDARD_LABEL_CHAR_MAPPING 将用下划线替换所有非法字符。可以使用createValidName(title, labelCharMapping[]) 方法将HYPHEN_LABEL_CHAR_MAPPING 替换为连字符。

    【讨论】:

      【解决方案2】:

      AEM 后端的coral-ui 使用的客户端库使用以下正则表达式进行过滤:

      _ILLEGAL_FILENAME_REGEX: /[\".%/\:*?[]|\n\t\r ]|[\x7f-\uffff]/g

      这是一个示例:

      var text = "äüö?abcdefghijklmnopqrstuvwxyz!\"§$%&/()=?´`+*#'-_.:,;<>^°";
      var regex = /[\"\.%/\\:*?\[\]|\n\t\r ]|[\x7f-\uffff]/g;
      console.log(text.toLowerCase().replace(regex, '-'));

      【讨论】:

        猜你喜欢
        • 2011-06-16
        • 1970-01-01
        • 2021-01-02
        • 1970-01-01
        • 2011-02-10
        • 2021-10-18
        • 1970-01-01
        • 2016-04-18
        • 1970-01-01
        相关资源
        最近更新 更多