在 CQ5 上使用 CRXDE lite 或其他 UI 界面上传文件(以 dam 文件夹中的图像为例)时,如果上传的文件包含无效字符,系统将给出错误消息。
我刚刚发现[
并且]
不允许作为文件名的一部分。
SlingPostServlet
但是,例如,当使用非 UI 界面上传文件时,字符[
被替换为百分比编码表示 (%5D),并且没有生成错误。
是否有某种列表/文档可以显示 CQ5 中不允许使用的字符?
我正在使用 CQ5.4
谢谢
JCR 命名限制在 JCR 规范的存储库模型部分中描述。
具体来说,不允许使用以下字符:
(“/”, “:”, “[“, “]”, “|”, “*”)
有一个 com.day.cq.commons.jcr.JcrUtil 类有一个createValidName(title)方法可以帮助你。默认情况下,STANDARD_LABEL_CHAR_MAPPING
会将所有非法字符替换为下划线。可以使用createValidName(title, labelCharMapping[])方法HYPHEN_LABEL_CHAR_MAPPING
将 替换为连字符。
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, '-'));