2

在 CQ5 上使用 CRXDE lite 或其他 UI 界面上传文件(以 dam 文件夹中的图像为例)时,如果上传的文件包含无效字符,系统将给出错误消息。

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

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

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

我正在使用 CQ5.4

谢谢

4

2 回答 2

4

JCR 命名限制在 JCR 规范的存储库模型部分中描述。

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

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

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

于 2013-08-22T11:39:27.410 回答
0

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, '-'));

于 2020-06-19T13:13:26.560 回答