2

Javascript を使用して PHP に画像をアップロードする前に、画像の解像度を検証したいと考えています。私のphpフォームで、2つの異なる画像をアップロードしたいのですが、両方の画像に異なる解像度制限があります。

次のコードを試します

PHPコード

echo "<form name='add' enctype='multipart/form-data' action='AppActions.php' method='post' onSubmit='return validate_create();'>";
echo "<div class='form_label'>Album Wrapper (Big Image) *</div>";
echo "<div class='form_input'><input type='file' name='bigimage' id='bigimage' />";

echo "<div class='form_label'>Album Wrapper (Small Image) *</div>";
echo "<div class='form_input'><input type='file' name='smallimage' id='smallimage' />;
echo "<input type='submit' name='add' value='Create' class='Buttons' id='add'>";    

JavaScriptで

function validate_create()
{
var bigimage = document.getElementById('bigimage');
var smallimage = document.getElementById('smallimage');

var big_img_width = bigimage.clientWidth;
var big_img_height = bigimage.clientHeight;

var small_img_width = smallimage.clientWidth;
var small_img_height = smallimage.clientHeight;

// if condtion to check the condition //
}

ここでは、異なるサイズのファイルを選択しても、両方の画像の幅と高さを同じにしています。

これを行う方法?私に提案してください

前もって感謝します

4

3 に答える 3

5

JavaScript で新しい HTML5 ファイル API を使用して、これを確認できます。ただし、これはまだ多くのブラウザーでは使用できません。ただし、これを実装できるため、これをサポートしているブラウザーのユーザーは、これを利用できます。詳細と例については、この SO 投稿を参照してください。もう 1 つの可能性は、ある種のフラッシュ アップローダを使用することです (検索するだけです)。

PHPで事前に確認することはできません。PHP はサーバー側で実行され、明らかに、クライアント コンピューター上の何にもアクセスできません。

于 2012-05-04T08:37:41.303 に答える
2

ファイルのサイズを検証するには、getimagesize()を使用します。有効でない場合は、スローしてエラーになります。また、javascript / jquery でアップロードされた画像のサイズを取得することをお勧めします。

于 2012-05-04T08:43:37.093 に答える
0

bigimage.clientWidthまたはを実行すると、アップロードしようとしている画像ではなく、要素smallimage.clientWidthの幅が実際に取得されます。inputまた、JavaScript はファイルが実際にアップロードされる前に実行され、画像の解像度は現時点では不明です。実際、ファイルが本当に画像ファイルであるかどうかさえわかりません。

アップロードされたファイルのタイプ、および画像の場合は画像の解像度は、アップロードが完了した後にのみ決定できます。したがって、これは PHP (AppActions.phpスクリプト) で行う必要があります。PHP では、file global にアクセス$_FILESして、アップロードされたファイル、そのタイプ、およびサイズを確認できます。その後、画像を開いて、 と を使用imagesximagesyて寸法を決定できます。

アップロードを許可する前にファイルの種類を知る必要がある場合は、Flash コンポーネントを使用するしか方法はないと思います。たとえば、SWFUploader . JavaScript はユーザーのコンピュータ上のファイルにアクセスできませんが、Flash は実際にファイルをアップロードする前にファイルの種類とサイズを判断できます。それでも、あなたのサイトは Flash を必要とし、それはあなたが望むものではないかもしれません。

于 2012-05-04T08:34:58.577 に答える