CQ5文件名允许的字符

时间:2013-08-20 19:00:06

标签: cq5 jcr sling

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

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

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

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

我正在使用CQ5.4

谢谢

2 个答案:

答案 0 :(得分:3)

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

具体而言,不允许使用以下字符:

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

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

答案 1 :(得分:0)

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

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