0

使用正则表达式确保上传的文件input[type="file"]是 MP3。出了点问题,我正在测试的文件没有通过。

谢谢你的帮助!

HTML

<input type="file"/>

JavaScript

var file = $input.find('input[type="file"]'),
    val  = file.val(),
    type = /^([a-zA-Z0-9_-]+)(\.mp3)$/;

submit.attr('disabled', 'disabled').addClass('deac');

if (!val){

    modal("The upload can't be empty.", true);
} else if (!type.test(val)){

    modal("The song must be in MP3 format.", true);

    /***********
     *
     * Getting caught here- even with a valid .mp3 file that _should_ pass the regex
     * in my test case using mamp as a localhost, val = C:\fakepath\1.mp3 
     *
     ***********/
} else {

    /* Success */
}
4

2 回答 2

1

我认为最好的解决方案是使用方法mime()

这样,即使文件被重命名了。Mp3 不受规避控制。

于 2013-03-29T23:12:16.243 回答
0

我认为 IE 是唯一添加类似“fakepath”前缀的浏览器,所以这样的东西可能会更好:

type = /^(?:[A-Z]:\\fakepath\\)?([a-zA-Z0-9_-]+)(\.[Mm][Pp]3)$/;
于 2013-03-29T23:43:38.193 回答