0

我是php新手。对于我的购物网站项目,我需要你的帮助。

在我的 add_product 页面中,我有产品图片选项。当我提交表单时,文件图像将在不同文件夹中重新调整大小为 3 种不同的大小,例如 -

30x30 for Shopping cart icon in 'Product/Image/Icon' folder.
170x300 for Base image in 'Product/Image/Base' folder.
400x300 for Large View in 'Product/Image/Thumb' folder.

我还有一个数据库表 -

ID
Product ID
thumb_name
thumb_type

提交表单后,每个文件也会生成一个唯一的新名称并保存在上表中,如下所示 -

ID : Auto increment
Product ID : 44545
thumb_name : new file name here
thumb_type:  Base Image

如何重新调整图像大小并上传到不同大小的不同文件夹并将文件名插入MySQL数据库?请帮助我任何人。

4

1 回答 1

0
  1. 上传后仅存储图像库名称到数据库,例如。产品1.jpg
  2. 然后在不同的目录中创建具有相同名称的拇指..

    上传文件 - uploads/product1.jpg
    小拇指 - uploads/thumbs/small/product1.jpg

这是一个在 php 中创建拇指的函数

function createThumb($filepath, $thumbPath, $maxwidth, $maxheight, $quality=75)
{   
            $created=false;
            $file_name  = pathinfo($filepath);  
            $format = $file_name['extension'];
            // Get new dimensions
            $newW   = $maxwidth;
            $newH   = $maxheight;

            // Resample
            $thumb = imagecreatetruecolor($newW, $newH);
            $image = imagecreatefromstring(file_get_contents($filepath));
            list($width_orig, $height_orig) = getimagesize($filepath);
            imagecopyresampled($thumb, $image, 0, 0, 0, 0, $newW, $newH, $width_orig, $height_orig);

            // Output
            switch (strtolower($format)) {
                case 'png':
                imagepng($thumb, $thumbPath, 9);
                $created=true;
                break;

                case 'gif':
                imagegif($thumb, $thumbPath);
                $created=true;
                break;

                default:
                imagejpeg($thumb, $thumbPath, $quality);
                $created=true;
                break;
            }
            imagedestroy($image);
            imagedestroy($thumb);
            return $created;    
}

参数详情

$filepath // uploaded file path include name eg. uploads/product1.jpg
$thumbPath // thumbpath with name eg. uploads/thumbs/small/product1.jpg
$maxwidth // width for the thumb eg. 100
$maxheight// height for the thumb eg. 60
$quality=75 // quality for the thumb image 1 - 100 ...by default it is 75
于 2014-07-26T18:13:54.997 回答