4

ファイルをアップロードしたいのですが、ユーザーが間違った形式のファイルを選択しないようにしたいです。そのため、jQuery スクリプトを使用してファイル拡張子を確認しています。

ここに入力があります

<input id="uploadCV" type="file" name="uploadCV" accept="application/pdf" />

ここにjQueryスクリプトがあります

if ($("#uploadCV").val().split(".")[1].toUpperCase() == "PDF") 
{
     return true;
}
else{
     return false;
}

このコードは Firefox では正常に動作しますが、IE では動作しません。これは、IE ではファイル名に$("#uploadCV").val()拡張子が含まれていないためです。たとえば\directory\filename\directory\filename.pdf.

誰もこのようなことに直面したことがありますか?回避策はありますか?

4

2 に答える 2

3

私はこれを IE9 でテストしました。現在テストする IE8 はありません。この関数は最後のドットも考慮します。ソリューションでは、ファイル名に this.is.a.pdf.pdf のようなドットが含まれている場合、拡張子は間違っています。

このフィドルをチェックしてください: http://jsfiddle.net/HN7Ww/1/

$('#sendMe').click(function() {
    var file = $("#uploadCV").val();
    if (file.substr(file.lastIndexOf('.') +1).toUpperCase() == "PDF") 
    {
         $('.result').html('valid');
    }
    else
    {
           $('.result').html('not valid');

    }
});

.

<input id="uploadCV" type="file" name="uploadCV" accept="application/pdf" />
<div class="result"></div>
<input type="button" id="sendMe" value="send" />

さらにサポートが必要な場合はお知らせください

よろしくジャン

于 2013-08-21T15:10:11.710 に答える
0
$('#fileid').change(function (e) {
    var ext = this.value.match(/\.(.+)$/)[1];
    if(ext.toLowerCase() !== "pdf" )
    {
        alert("Only Pdf format supported");
        e.preventDefault(); 
        if ($.browser.msie) {
            $('#fileid').replaceWith($('#').clone()); // This makes file selected to null in IE
      }
      else {
            $('#fileid').val("");
      }
    }

});

これにより、PDF 以外のファイルを選択すると警告が表示され、PDF 以外のファイルを選択すると選択がクリアされます。

于 2013-10-24T06:09:48.593 に答える