1

私は現在、jqueryを使用してaaファイルが画像形式であるかどうかを検証する方法を見つけようとしています(jpeg,jpg,bmp,gif,etc).length簡単な比較で、入力が空かどうかを判断することができました。ファイルの種類を確認し、有効な画像形式のみを受け入れるにはどうすればよいですか。

空か入力なし:

if ($.trim($('#textInput').val()).length == 0) {
    alert("Should Not Be Empty!");
}
4

3 に答える 3

3

ファイル入力が与えられた場合:

var extension = $('#file_input').val().split('.').pop();
if (['bmp', 'gif', 'png', 'jpg', 'jpeg'].indexOf(extension) > -1) {
    console.log('validated');
} else {
    console.log('invalid extension');
}

より広範なファイル タイプ フィルタリングを行うには、理想的にはサーバー側の検証を使用する必要があります。

于 2013-01-31T17:44:05.347 に答える
2

ファイルの拡張子を抽出する簡単な関数を作成できます。

function getExtension(file) {
    return file.split('.').pop();
}

次に、入力値を確認できます。

var file = $.trim($('#textInput').val());
if (['gif','png', ...].indexOf(getExtension(file)) > - 1) {
     ...
}

また、この投稿も確認してください。役立つかもしれません。

'input type="file"' JPG、GIF、または PNG でのみ許可するように HTML5 で検証する方法は?

于 2013-01-31T17:45:24.083 に答える
2

セキュリティ上の理由から、javascript を使用して有効なファイル タイプをテストしないでください。Javascript はクライアント側のみであるため、スクリプトは簡単に回避されるか、ユーザーが別の拡張子でファイルの名前を変更するだけで、チェックポイントが失敗します。

ユーザーがアップロードしたファイルの MIME タイプとサーバー側の検証を調べますこれは複雑なテーマであり、それにどれだけの時間を費やしたいかを決めるのはあなた次第です。より徹底したチェックでセキュリティが向上します。

私が使用するチェックは、ファイル サイズ、MIME タイプ、およびアップロード場所です (リモート サイトからスクリプトをアップロードしようとしている人がいないことを確認するため)。PHP のこれらの関数は、、、、filesizeおよびです。同様の関数が他の言語にも存在します。fileinfomime_content_typeis_uploaded_file

さらに進んでファイルの一部をテストし、たとえば、MIME ヘッダーをだまして、悪意のあるコードや JPEG を装ったファイルではないことを確認できます。

于 2013-01-31T18:01:19.027 に答える