修改UEditor实现支持任意格式的附件上传

通常我们在开发时,需要限制前端用户上传文件的格式类型,但在某些特殊情况下,我们希望能支持用户上传任意格式的附件文件。使用UEditor时,我们可以通过指定后端配置参数fileAllowFiles的值来设置编辑器允许上传的附件类型,该参数设置为空数组时,前端上传所有文件均提示格式不支持。

于是,我们需要手动修改一下UEditor的代码,找到并打开ueditor/dialog/attachment/attachment.js文件,搜索“acceptExtensions”字符串,找到两处代码:

第一处是

acceptExtensions = (editor.getOpt('fileAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');;

第二处是

if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
    showError('not_allow_type');
    uploader.removeFile(file);
}

将第二处代码修改为:

if (acceptExtensions!='' && (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1)) {
    showError('not_allow_type');
    uploader.removeFile(file);
}

这样,当fileAllowFiles设置为空数组时(即不指定限制格式),前端就可以上传任意格式的附件了。

另外需要提醒的是,后端接收文件的代码需要自己根据需要验证文件格式是否符合要求。

你可能感兴趣的:(技术文章,前端,编辑器)