2012-03-21 19 views
9

Tôi đang thực hiện trình xử lý tải lên hình ảnh và tôi muốn nó phát hiện kích thước của hình ảnh được người dùng tải lên.

Vì vậy, tôi bắt đầu với:

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

và tôi có

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

Làm thế nào anh có thể sử dụng chúng với nhau?

Thanks a lot

Trả lời

19

Bạn có thể làm điều này như thế

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

// or 

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

Sử dụng điều kiện kết hợp, đây là một ví dụ

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

Xin chào, cảm ơn phản hồi của bạn. Đó có phải là kích thước $ một mảng của tất cả các thuộc tính của hình ảnh? Tôi chỉ tìm kiếm chiều cao và chiều rộng, vì vậy tôi đoán đây là những yếu tố của mảng đó? Cảm ơn – eric01

+0

@ eric01, Không, bạn có thể sử dụng nó với danh sách. Tôi đã cập nhật với một ví dụ – Starx

+0

Oh ok tôi thấy, cảm ơn rất nhiều cho phản hồi của bạn. Trân trọng – eric01

0

từ php tay ví dụ rất đơn giản.

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']); 

Từ các tài liệu:

Index 0 và 1 chứa tương ứng với chiều rộng và chiều cao của hình ảnh.

Chỉ số 2 là một trong các hằng số IMAGETYPE_XXX cho biết loại hình ảnh .

Chỉ mục 3 là chuỗi văn bản có chiều cao đúng = "yyy" width = "xxx" chuỗi có thể được sử dụng trực tiếp trong thẻ IMG.

Vì vậy, bạn chỉ có thể làm list() và đừng lo lắng về chỉ số, nó sẽ nhận được các thông tin bạn cần :)

0

Hãy thử điều này cho hình ảnh đa:

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

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

Hãy thử điều này cho hình ảnh đơn:

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

ít nhất nó cũng phù hợp với tôi.

Các vấn đề liên quan