8

フォームを使用してファイルをアップロードしています。PDFファイルのみをアップロードしたい。これは私のコードです:

ユーザーがファイルを選択できるようにする入力ボックス:

@Html.FileBox(m => m.FileName, new { id = "FileName", accept = "application/pdf" })

エラーメッセージを表示する場所:

@Html.ValidationMessageFor(m=>m.FileName)

入力フィールド用に生成されたコードは次のとおりです。

    <input id="FileName" type="file" name="FileName" data-val-required="The File Name field is required." data-val-length-max="512" data-val-length="The field File Name must be a string with a maximum length of 512." data-val="true" accept="application/pdf">

PDF ファイルを選択してもエラーが発生するようになりましたPlease enter a value with a valid extension.

私はMVC 3と目立たないjqueryを使用してフォームを検証しています。

4

4 に答える 4

13

同じ問題があり、accept 属性の検証を完全に無効にする必要がありました。次の行をページに追加したところ、機能しました。

$.validator.addMethod('accept', function () { return true; });

于 2012-06-27T17:35:42.213 に答える
9

彼らは、バージョン 1.10.0 で「accept」メソッドの動作を変更しました。ファイル拡張子をチェックする代わりに、MIME タイプを調べるようになりました。古い動作は「拡張」メソッドとして利用できるようになりました。したがって、jquery 検証プラグインのバージョンを更新するだけで完了です。現在のバージョン 1.9.0 を 1.11.0 に置き換え、有効な MIME タイプを accept-attribute として設定しました。期待どおりに動作するようになりました:

accept="image/*, application/pdf"
于 2013-02-25T17:21:37.897 に答える
9

jQuery Validation に組み込まれている "accept" ルール メソッドは、"jpg|png" に似た形式の値を取ります。

「accept」HTML 属性は、「image/jpeg,image/png」に似た形式を取ります。

この点で、jQuery Validation と HTML 標準は互換性がないように思われます。

ここでは、 jQuery Validation の「accept」ルールHTML5 の「accept」属性について詳しく読むことができます。

于 2012-10-23T21:38:30.097 に答える
6

accept 属性として両方の形式を入力すると、機能するはずです

accept="image/jpeg,image/png,jpg|png"
于 2013-02-05T16:57:15.460 に答える