PHP - 上传时图像调整大小问题

时间:2014-08-17 14:00:45

标签: php resize avatar

我很难让我的网络应用程序正常运行。我一直试图让我的头像不被推动,并在上传时自动调整大小。我不是最好的PHP因此我不能自己做这个。如果有人可以帮助我,我将不胜感激。这是化身的文件代码。

祝你好运!

if (isset($_FILES['myfile']) && !empty($_FILES['myfile']['name'])) {

                $name           = $_FILES['myfile']['name'];
                $tmp_name       = $_FILES['myfile']['tmp_name'];
                $allowed_ext    = array('jpg', 'jpeg', 'png', 'gif' );
                $a              = explode('.', $name);
                $file_ext       = strtolower(end($a)); unset($a);
                $file_size      = $_FILES['myfile']['size'];        
                $path           = "avatars";

                if (in_array($file_ext, $allowed_ext) === false) {
                    $errors[] = 'Image file type not allowed';  
                }

                if ($file_size > 2097152) {
                    $errors[] = 'File size must be under 2mb';
                }

            } else {
                $newpath = $user['image_location'];
            }

1 个答案:

答案 0 :(得分:0)

您需要在网络服务器上存储已上传的图片

为此:

你需要:

move_uploaded_file()

为了调整大小,你可以使用:

imagecopyresampled()

如下:

function resizeIMG($o_img // original image
, $target_image // Resized New Image
, $newWidth, $newHeight){
// Get Original Dimensions as follows:
$original_width=imagesx($o_image); //Returns width of image
$original_height=imagesy($o_image); //Returns height of image
$tmp = imagecreatetruecolor($newWidth, $newHeight); // Create New temp. image with new dimensions
imagecopyresampled($tmp_img, $o_img, 0, 0, 0, 0, $newWidth, $newHeight, $original_width, $original_height); // Resize original image to temporary Image
imagejpeg($tmp, $target_image, $quality); // Copy temp Image to Target File for JPG images
imagedestroy($tmp); // Destroy Temporary Image.
/* Use
imagepng() instead of imagejpeg() for PNG images
imagegif() instead of imagejpeg() for GIF images
*/
}

对于提到的所有这些功能,您需要为您的php启用gd_drivers。只需在行;之前移除extension=php_gd2.dll,如果您正在使用窗口,或在其他人看到this

或者您可以将image_magick用于php。

还要查看:Resize images in PHP without using third-party libraries?

希望它有所帮助..欢呼:)。