2012-03-21 12 views
9

Zajmuję się obsługą przesyłania obrazu i chciałbym, aby wykrył wymiary obrazu, który został przesłany przez użytkownika.

Więc zacznę:

if (isset($_FILES['image'])) etc.... 

i mam

list($width, $height) = getimagesize(...); 

Jak mam używać ich razem?

Thanks a lot

Odpowiedz

19

Można to zrobić w taki

$filename = $_FILES['image']['tmp_name']; 
$size = getimagesize($filename); 

// or 

list($width, $height) = getimagesize($filename); 
// USAGE: echo $width; echo $height; 

wykorzystaniem warunku połączeniu, tutaj jest przykładem

if (isset($_FILES['image'])) { 
    $filename = $_FILES['image']['tmp_name']; 
    list($width, $height) = getimagesize($filename); 
    echo $width; 
    echo $height;  
} 
+0

Witam, dziękuję za odpowiedź. Czy to rozmiar $ tablica wszystkich atrybutów obrazu? Po prostu szukam tylko wysokości i szerokości, więc myślę, że to są elementy tej tablicy? Dzięki – eric01

+0

@ eric01, Nie, możesz go używać z listą do. Zaktualizowałem przykład: – Starx

+0

Oh ok, rozumiem, wielkie dzięki za odpowiedź. Pozdrowienia – eric01

0

z ręcznym php bardzo prosty przykład.

list($width, $height, $type, $attr) = getimagesize("img/flag.jpg"); 
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />"; 
1
list($w, $h) = getimagesize($_FILES['image']['tmp_name']); 

Od docs:

Index 0 i 1 zawiera odpowiednio szerokość i wysokość obrazu.

Indeks 2 jest jedną ze stałych IMAGETYPE_XXX wskazujących typ obrazu .

Indeks 3 jest ciągiem tekstowym o prawidłowej wysokości = "rrr" szerokość = "xxx" ciąg znaków, którego można użyć bezpośrednio w znaczniku IMG.

więc można po prostu zrobić listę() i nie martw się o indeksach, należy uzyskać potrzebne informacje :)

0

Spróbuj to dla wielu obrazów:

for($i=0; $i < count($filenames); $i++){ 

    $image_info = getimagesize($images['tmp_name'][$i]); 
    $image_width = $image_info[0]; 
    $image_height = $image_info[1]; 
} 

Wypróbuj dla pojedynczego obrazu:

$image_info = getimagesize($images['tmp_name']); 
$image_width = $image_info[0]; 
$image_height = $image_info[1]; 

przynajmniej to dla mnie działa.