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()を使用することだと思います。

このように、ファイルの名前が a. MP3 は回避されたコントロールではありません。

于 2013-03-29T23:12:16.243 に答える
0

「fakepath」プレフィックスのようなものを追加するブラウザは IE だけだと思う​​ので、次のような方がうまくいくかもしれません。

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