使用CRXDE lite或其他UI界面在CQ5上传文件(作为示例的图像到dam文件夹)时,如果上传的文件包含无效字符,系统会给出错误消息。
我刚发现[
和]
不允许作为文件名的一部分。
但是,当使用非UI界面(例如SlingPostServlet
)上传文件时,字符[
会被百分比编码表示(%5D)替换,并且不会生成错误。
是否有某种列表/文档可以显示CQ5中不允许使用哪些字符?
我正在使用CQ5.4
谢谢
答案 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, '-'));