Autor Zpráva
Pavel015
Profil
Dobrý den.

Už hodně hodin si s tím lámu hlavu... Potřebuju nahrávat fotku a přitom ji zmenšit na 200x200px. Googlil jsem, ale nejdou mi ty skripty dát nějak do sebe... Prosím o radu...

    $uploadDir = 'images/profile'; // adresar, kam se maji nahrat obrazky (bez lomitka na konci)
$allowedExt = array('jpg', 'jpeg', 'png', 'gif'); // pole s povolenymi priponami
// zpracovani uploadu
if(isset($_FILES['obrazky']) && is_array($_FILES['obrazky']['name'])) {
    $counter = 0;
    $allowedExt = array_flip($allowedExt);
    foreach($_FILES['obrazky']['name'] as $klic => $nazev) { // zde poslané obrázky proměníme na proměnnou $nazev

        $nazev = htmlspecialchars($nazev, ENT_QUOTES);
        $fileName = basename(time() . ".png");
        $fileName = sprintf(time() . ".png", pathinfo($nazev, PATHINFO_EXTENSION));
        $tmpName = $_FILES['obrazky']['tmp_name'][$klic];
        $fileName = htmlspecialchars($fileName, ENT_QUOTES);

        
        // kontrola souboru
        if(
            !is_uploaded_file($tmpName)
            || !isset($allowedExt[strtolower(pathinfo($fileName, PATHINFO_EXTENSION))])
        ) {
            // neplatny soubor nebo pripona
            continue;
        }
        // presun souboru
        
        
      
        if(move_uploaded_file($tmpName, "{$uploadDir}".DIRECTORY_SEPARATOR."{$fileName}")) {
            ++$counter;
     
            
        }
    }
    
    if($counter=='0'){
        // uzivatel, ktery nenahral profilovy obrazek
        $fileName = '0';
    } elseif($counter=='1') {
        $fileName = $uploadDir."/".$fileName;        
    }
    
}


A s tímto bych to chtěl spojit:

<?php
$path = $_FILES['obrazok']['tmp_name'];
list($src_w, $src_h, $typ)=getimagesize($path);
 
$src_img=imagecreatefromjpeg($path);
$big_img=imagecreatetruecolor(200, 200);
 
if($src_w == $src_h)
{
    $s_w = $s_h = 0;
    $t = $src_w;
}
elseif($src_w > $src_h)
{
    $t = $src_h;
    $s_h = 0;
    $s_w = round(($src_w - $src_h) / 2);
}
elseif($src_w < $src_h)
{
    $t = $src_w;
    $s_w = 0;
    $s_h = round(($src_h - $src_w)/2);
}
 
imagecopyresampled($big_img, $src_img, 0, 0, $s_w, $s_h, 200, 200, $t, $t);
header('Content-type: image/jpeg');
imagejpeg($big_img);
?>

Hrozně moc děkuji za pomoc.

P.S.: Žádné knihovny používat nechci.
Slark
Profil
A v čem konkrétně máte problém? Hází vám to nějakou chybu nebo s čím si konkrétně nevíte rady?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: