Оразмеряване на аватари

lub4o

Registered
Здравейте, имам една системка за ъплоад на аватари, тоест като се регистрираш и трябва да си избереп аватар.
Ето кода
Код:
<?php
include 'config.php';
$title = $_POST['title'];
if($_POST['Submit']){
if($_GET['do'] == "up") {
$file = $_FILES['file']["name"];
$end = end(explode(".", $file));
if($end == "flv") {
@move_uploaded_file($_FILES['file']["tmp_name"], "files/" . $_FILES['file']['name']);
$sql = mysql_query("INSERT INTO failove (title,file) VALUES ('$title','$file')") or die (mysql_error());
}else{
echo ' ne e rar';
}
}
}   ?>
Това е ъплоад системата. Може ли да ми кажете как като се качват на сървъра ми да се качват оразмерени 70px на 70px
 
Код:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if ($_FILES['image']) {
        preg_match('/\.([A-Za-z]+?)$/', $_FILES['image']['name'], $matches);
        $matches[1] = strtolower($matches[1]);
        if ($matches[1] == 'png' && function_exists('imagecreatefrompng')
                || $matches[1] == 'jpg' && function_exists('imagecreatefromjpeg')
                || $matches[1] == 'jpeg' && function_exists('imagecreatefromjpeg')
                || $matches[1] == 'gif' && function_exists('imagecreatefromgif')
                || $matches[1] == 'bmp' && function_exists('imagecreatefromwbmp')) {
           
            list ($owidth, $oheight) = getimagesize($_FILES['image']['tmp_name']);
            if ($_POST['resizeby'] == 'height') {
                $nheight = ($_POST['size'] > 1) ? $_POST['size'] : 70;
                $nwidth = $nheight / $oheight * $owidth;
                $resized = imagecreatetruecolor($nwidth, $nheight);
            } else {
                $nwidth = ($_POST['size'] > 1) ? $_POST['size'] : 70;
                $nheight = $nwidth / $owidth * $oheight;
                $resized = imagecreatetruecolor($nwidth, $nheight);
            }
            if ($matches[1] == 'png')
                $original = imagecreatefrompng($_FILES['image']['tmp_name']);
            if ($matches[1] == 'jpg' || $matches[1] == 'jpeg')
                $original = imagecreatefromjpeg($_FILES['image']['tmp_name']);
            if ($matches[1] == 'gif')
                $original = imagecreatefromgif($_FILES['image']['tmp_name']);
            if ($matches[1] == 'bmp')
                $original = imagecreatefromwbmp($_FILES['image']['tmp_name']);
            imagecopyresampled($resized, $original, 0, 0, 0, 0, $nwidth, $nheight, $owidth, $oheight);
            header('Content-Disposition: attachment; filename="'.$_FILES['image']['name'].'"');
            header('Content-type: image/'. (($matches[1] == 'jpg') ? 'jpeg' : $matches[1]));
            if ($matches[1] == 'png')
                imagepng($resized);
            if ($matches[1] == 'jpg' || $matches[1] == 'jpeg')
                imagejpeg($resized);
            if ($matches[1] == 'gif')
                imagegif($resized);
            if ($matches[1] == 'bmpg')
                imagewbmp($resized);
            exit();
        } else
            $error = 'File type not supported!';
    } else
        $error = 'No image uploaded!';
}
?>
 
Предлагам ти при изкарването им да използваш max-width и max-height.
 
<?php
include 'config.php';
$title = $_POST['title'];
if($_POST['Submit']){
if($_GET['do'] == "up") {
$file = $_FILES['file']["name"];
$end = end(explode(".", $file));
if($end == "flv") {
@move_uploaded_file($_FILES['file']["tmp_name"], "files/" . $_FILES['file']['name']);
$resizer = new ImageResizer();
$resizer->setFormat(ImageResizer::FORMAT_JPEG);
$resizer->setSource("......./'$file'");
$resizer->setWidth(120);
$resizer->setHeight(90);
$resizer->resize();
$resizer->setDestination("......../thumbnail.jpg");
$resizer->writeOutput();
$sql = mysql_query("INSERT INTO failove (title,file) VALUES ('$title','$$resuzer')") or die (mysql_error());
}else{
echo ' ne e rar';
}
}
}
?>

Така?
 
baso каза:
<?php
include 'config.php';
$title = $_POST['title'];
if($_POST['Submit']){
if($_GET['do'] == "up") {
$file = $_FILES['file']["name"];
$end = end(explode(".", $file));
if($end == "flv") {
@move_uploaded_file($_FILES['file']["tmp_name"], "files/" . $_FILES['file']['name']);
$resizer = new ImageResizer();
$resizer->setFormat(ImageResizer::FORMAT_JPEG);
$resizer->setSource("......./'$file'");
$resizer->setWidth(120);
$resizer->setHeight(90);
$resizer->resize();
$resizer->setDestination("......../thumbnail.jpg");
$resizer->writeOutput();
$sql = mysql_query("INSERT INTO failove (title,file) VALUES ('$title','$$resuzer')") or die (mysql_error());
}else{
echo ' ne e rar';
}
}
}
?>
И това работи. Сигурен ли си. Без class файла няма как да стане

Така?
 
В конфиг.пхп слагаш тази функция
function resize($filename) {
if(preg_match("/[.](jpg)$/", $filename)) {
$pic = imagecreatefromjpeg($filename);
} else if (preg_match("/[.](png)$/", $filename)) {
$pic = imagecreatefrompng($filename);
} else if (preg_match("/[.](gif)$/", $filename)) {
$pic = imagecreatefromgif($filename);
}
$pic_x = imagesx($pic);
$pic_y = imagesy($pic);
$new_pic_x = "70";
$new_pic_y = "70";
$new_pic = imagecreatetruecolor($new_pic_x, $new_pic_y);
imagecopyresized($new_pic, $pic, 0, 0, 0, 0, $new_pic_x, $new_pic_y, $pic_x, $pic_y);
imagejpeg($new_pic, "files/".$filename);
}
а това е upload.php
<?php
include 'config.php';
$title = $_POST['title'];
if($_POST['Submit']){
if($_GET['do'] == "up") {
$file = $_FILES['file']["name"];
$file_tmp = $file = $_FILES['file']["tmp_name"];
if(preg_match("/[.](jpg)|(gif)|(png)$/", $file)) {
resize($file_tmp);
$sql = mysql_query("INSERT INTO failove (title,file) VALUES ('$title','$file')") or die (mysql_error());
}else{
echo ' ne e kartinka';
}
}
} ?>
 
Дава ми този ерор като сложа в configa кода

Fatal error: Cannot redeclare resize() (previously declared in C:\xampp\htdocs\web\config.php:18) in C:\xampp\htdocs\web\config.php on line 33
 

Back
Горе