2012-05-01 18 views
0

jqueryに問題があります。アップロードする前に画像のサイズを検証するための解決策を見つけました。それはまたここに掲示されました:jQuery:アップロードする前に画像の寸法を検証する方法は?

$.validator.addMethod('filesize', function(value, element, param) { 
    // param = size (in bytes) 
    // element = element to validate (<input>) 
    // value = value of the element (filename) 
    return this.optional(element) || (element.files[0].size <= param) 
}); 

私はすべてを定義し、それは完全に動作します!しかし、私はまた、その画像の幅と高さを確認したいと思います。このため任意の解決策はあり

$.validator.addMethod('widthpic', function(value, element, param) { 
    return this.optional(element) || (element.files[0].width == param) 
}); 

:私は上記のように同じである第二の方法を追加しようとしましたが、代わりにサイズの私は、高さまたは幅が、このdoesntの仕事を使用しましたか?もちろん、PHPでイメージのサイズも確認しましたが、jqueryスタイルでも追加したいと思います。

+0

http://docs.fineuploader.com/branch/master/features/validation.html#image-validation –

答えて

0

ファイルのサイズを読むために活用されているものはW3C File APIです。私はあなたが幅や高さのような何かを決定することが示唆されている参照はありません。あなたはサーバー側を待ってから画像を取得し、ImageMagickのようなライブラリを使って寸法を確認しなければなりません。

+0

ステップ1: 'File'をデータURIに変換します。ステップ2: ''の 'src'属性をこのデータURIに設定します。ステップ3: 'onload'イベントを処理した後、画像の幅/高さを確認します。 –

+0

@RayNicholus - 一般的にはうまくいくようですが、ファイルをアップロードする前にどのように役立つのですか?(これは検証前にアップロード中に起こっています) – Ryley

+0

ユーザーが提出したファイルを検証する場合は、アップロード前にアップロードする必要があります。私はあなたがファイルを選ぶことと "アップロード"を混同していると思う。ファイルがアップロードされると、そのバイトはすでにサーバーに送信されています。ユーザーがファイル入力を介してファイルをドロップまたは選択すると、ブラウザがFile APIをサポートしていれば、ファイルに好きなことをすることができます。 –

関連する問題