簡體   English   中英

使用PHP上傳圖像之前檢查圖像尺寸(高度和寬度)

[英]Check image dimensions (height and width) before uploading image using 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';
}


}







?>

我們可以輕松地使用臨時文件。

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

這就是我解決它的方式。

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

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

如果文件位於$_FILES數組中(因為它是以Multipart形式選擇的),它已經上傳到服務器(通常是/ tmp或類似的文件路徑),所以你可以繼續使用getimagesize() php中的函數來獲取維度(包括所有細節作為數組)。

這對我有用

$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;
}

在實際上傳發生之前,您需要在客戶端上執行某些操作。
隨着(服務器端),PHP,您可以檢查該文件已被上傳后,才尺寸或上傳掛鈎 可能在圖像上載(從圖像文件頭數據)。

所以你的選擇是flash,也許是帶有FileAPI的html5(沒有測試過,也許那是不可行的),java-applet,silverlight,...

要獲取圖像的寬度和高度,請使用getimagesize(path_name) ,此函數返回包含height,width,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
}

非常重要 - 如果您使用Dreamweaver進行編碼,並且嘗試使用$_FILES[anyFormName][tmp_name]來獲取圖像大小,它將在實時視圖中顯示錯誤。我花了一些時間來解決這個問題。

 array getimagesize ( string $filename [, array &$imageinfo ] )

getimagesize()函數將確定任何給定圖像文件的大小,並返回尺寸以及文件類型和要在普通HTML IMG標記內使用的高度/寬度文本字符串以及相應的HTTP內容類型。

欲了解更多信息,請訪問網站: http//www.php.net/manual/en/function.getimagesize.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM