web-dev-qa-db-ja.com

PHPを使用して、画像をアップロードする前に画像の寸法(高さと幅)を確認

PHPを使用して画像をアップロードする前に、高さと幅を確認するにはどうすればよいですか。

最初に画像をアップロードし、「getimagesize()」を使用する必要がありますか?または、PHPを使用してアップロードする前にこれを確認できますか?

<?php

foreach ($_FILES["files"]["error"] as $key => $error) {
if(
$error == UPLOAD_ERR_OK
&& $_FILES["files"]["size"][$key] < 500000 
&& $_FILES["files"]["type"][$key] == "image/gif"
|| $_FILES["files"]["type"][$key] == "image/png"
|| $_FILES["files"]["type"][$key] == "image/jpeg"
|| $_FILES["files"]["type"][$key] == "image/pjpeg" 
){


$filename = $_FILES["files"]["name"][$key];








if(HOW TO CHECK WIDTH AND HEIGHT)
{
echo '<p>image dimenssions must be less than 1000px width and 1000px height';
}


}







?>
24
Hakan

実際のアップロードが行われる前に、クライアントで実行される何かが必要です。
(サーバー側)phpを使用すると、ファイルをアップロードした後、または アップロードフックmaybe画像のアップロード中(画像ファイルのヘッダーデータから)。

あなたのオプションはフラッシュです、おそらくFileAPIを備えたhtml5(それをテストしていない、多分それは実行できない)、Javaアプレット、silverlight、...

4
VolkerK

これは一時ファイルで簡単に行えます。

$image_info = getimagesize($_FILES["file_field_name"]["tmp_name"]);
$image_width = $image_info[0];
$image_height = $image_info[1];
95
Tharanga

これは私がそれを解決した方法です。

$test = getimagesize('../bilder/' . $filnamn);
$width = $test[0];
$height = $test[1];

if ($width > 1000 || $height > 1000)
{
echo '<p>iamge is to big';
unlink('../bilder/'.$filnamn);
}
8
Hakan

ファイルが_$_FILES_配列にある場合(マルチパート形式で選択されているため)、ファイルは既にサーバーにアップロードされているので(通常/ tmpまたは同様のファイルパスに)、そのまま使用できますgetimagesize() PHPの関数で、次元(すべての詳細を配列として取得)を取得します。

5
liquorvicar

私のためのこの仕事

$file = $_FILES["files"]['tmp_name'];
list($width, $height) = getimagesize($file);

if($width > "180" || $height > "70") {
    echo "Error : image size must be 180 x 70 pixels.";
    exit;
}
4
jalalBK

画像の幅と高さを取得するには、getimagesize(path_name)を使用します。この関数は、高さ、幅、image_type定数、その他の画像関連情報を含む配列を返します。次のコードでそれを実現できます。

-move_upload_file()を使用する前に、画像の一時的な場所を渡し、次のコードを使用する必要があります。そうしないと、ファイルが目的のパスに移動し、画像の望ましい結果

$imageInformation = getimagesize($_FILES['celebrity_pic']['tmp_name']);
print_r($imageInformation);

$imageWidth = $imageInformation[0]; //Contains the Width of the Image

$imageHeight = $imageInformation[1]; //Contains the Height of the Image

if($imageWidth >= your_value && $imageHeight >= your_value)
{
  //Your Code
}
3
 array getimagesize ( string $filename [, array &$imageinfo ] )

Getimagesize()関数は、任意の画像ファイルのサイズを決定し、通常のHTML IMGタグおよび対応するHTTPコンテンツタイプ内で使用されるファイルタイプと高さ/幅のテキスト文字列とともに寸法を返します。

詳細については、次のサイトをご覧ください。 http://www.php.net/manual/en/function.getimagesize.php

0
Rizvan

非常に重要です-Dreamweaverを使用してコードを作成しているときに、$_FILES[anyFormName][tmp_name]を使用して画像サイズを取得しようとすると、ライブビューでエラーが表示されます。

0
user2976773