acceptFileTypes Blueimp fileupload

时间:2015-07-23 13:23:29

标签: jquery regex file-upload blueimp

我已经实现了JQuery fileupload,但是对于接受的文件类型存在一个小问题:

$('#fileupload').
    url: '/upload/uploaddoc', // URL zum File Upload
    type: 'POST',
    dataType: 'json',
    uploadTemplate: 'template-upload',
    acceptFileTypes: /^.*\.(?!exe$|lnk$)[^.]+$/i,
    maxFileSize:allowed_file_size
    .......
 }

我正在使用正则表达式来识别不允许的文件类型。但我想传递一个包含接受文件类型的变量,就像在 maxFileSize 中一​​样,但它似乎不接受列表和字符串。

你知道究竟是什么传递给acceptFileTypes吗?

2 个答案:

答案 0 :(得分:2)

您可以使用RegExp构造函数。

类似的东西:

acceptFileTypes: new RegExp("^.*\\." + my_condition_lookahead + "[^.]+$", "i"),

请注意,在使用构造函数表示法声明正则表达式时,需要双重转义特殊的正则表达式元字符。

答案 1 :(得分:1)

来自stribizhev的评论很有帮助,我正在创建正则表达式,这是我的代码:

NotallowedExtensions = ['.lnk', '.exe'];
for(var i= 0; i < NotallowedExtensions.length; i++){
    substr = NotallowedExtensions[i].substring(1);//i cut the (.) from the extension here
    if(i == NotallowedExtensions.length-1 ){
       regex+=substr + "$";
    } else {
      regex+=substr + "$|";
    }
}

之后我的acceptFileTypes如下所示:

acceptFileTypes: new RegExp("^\.*\\.(?!" + regex + ")[^.]+$", "i")