使用ckfinder控制在项目中做文件上传时 , 需要对上传文件的文件名做正则校验 , 代码如下:
<td>
<input id="attachment" name="attachment" type="hidden">
<sys:ckfinder input="attachment" type="files" uploadPath="/res/oa/issue" selectMultiple="false"/>
</td>
显示效果如下:
通过浏览器的控制台看到代码的层次结构是这样的:
于是在jsp页面上添加如下js进行验证:
//验证上传文件的文件名是否合法
var $list = $("ol[id^='attachment']>li>a:first-child");
$list.each(function (index, item) {
var fileName = item.innerHTML.trim();
var reg = new RegExp('[\\\\/:*?\"<>|]');
if (reg.test(fileName)) {
flag = false;
message = "上传的文件名不能包含【\\\\/:*?\"<>|】这些非法字符,请修改后重新上传!";
return flag;
}
})
if(!flag) return false;
以上即可实现文件名的校验.