Autor Zpráva
Peet
Profil
Dobrý den mám pár takových důležitých otázek ohledně upload obrázků.

1) v dokumentaci php se pořád používají hlavičky.. k čemu slouží ? například IMAGETYPE.....
2) bude nějak hodně vadit když přesto že uploadovaný obrázek je v png ale já si ho uložím jako jpg.?
3) mohl by mi někdo nějak stručně napsat kód který mi zmenší obrázek při uploadu např na 200x200px ?
4) co znamená toto UPLOAD_ERR_OK

Uploaduji takto:

                    /* PŘEVOD OBRÁZKU */
                    $hlfoto_name=($_FILES["hlfoto"]["name"]);
                    $hlfoto_size=($_FILES["hlfoto"]["size"]);
                    $hlfoto_type=($_FILES["hlfoto"]["type"]);
                    $hlfoto_server=($_FILES["hlfoto"]["tmp_name"]);
                    /* END PŘEVOD OBRÁZKU */


move_uploaded_file($hlfoto_server,"img/$hlfoto_name");

Předem děkuji každému za odpověď.
Rellik
Profil
Tady najdeš kód na zmenšení obrázku: http://firstpage.rellik.eu/?page=galerry
Peet
Profil
díky ale to mi moc nepomohlo... protože používáte spoustu zbytečných proměných.. a stává se z toho zmatek..

potřebuji jednoduchý kód kde se nějakou funkcí přímo přiřadí vyska x sirka a obrazek se ulozi nejakym zpusobem jako je move_uploaded_file... nerikejte mi ze nic takoveho neexistuje..
Ugo
Profil
Tady si vem simpleimage knihovnu - narazil bys na ní tak v prvních 5ti hledaných výsledcích.
<?php
/*
* File: SimpleImage.php
* Author: Simon Jarvis
* Copyright: 2006 Simon Jarvis
* Date: 08/11/06
* Link: http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php
* 
* This program is free software; you can redistribute it and/or 
* modify it under the terms of the GNU General Public License 
* as published by the Free Software Foundation; either version 2 
* of the License, or (at your option) any later version.
* 
* This program is distributed in the hope that it will be useful, 
* but WITHOUT ANY WARRANTY; without even the implied warranty of 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
* GNU General Public License for more details: 
* http://www.gnu.org/licenses/gpl.html
*
*/
 
class SimpleImage {
   
   var $image;
   var $image_type;
 
   function load($filename) {
      $image_info = getimagesize($filename);
      $this->image_type = $image_info[2];
      if( $this->image_type == IMAGETYPE_JPEG ) {
         $this->image = imagecreatefromjpeg($filename);
      } elseif( $this->image_type == IMAGETYPE_GIF ) {
         $this->image = imagecreatefromgif($filename);
      } elseif( $this->image_type == IMAGETYPE_PNG ) {
         $this->image = imagecreatefrompng($filename);
      }
   }
   function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image,$filename,$compression);
      } elseif( $image_type == IMAGETYPE_GIF ) {
         imagegif($this->image,$filename);         
      } elseif( $image_type == IMAGETYPE_PNG ) {
         imagepng($this->image,$filename);
      }   
      if( $permissions != null) {
         chmod($filename,$permissions);
      }
   }
   function output($image_type=IMAGETYPE_JPEG) {
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image);
      } elseif( $image_type == IMAGETYPE_GIF ) {
         imagegif($this->image);         
      } elseif( $image_type == IMAGETYPE_PNG ) {
         imagepng($this->image);
      }   
   }
   function getWidth() {
      return imagesx($this->image);
   }
   function getHeight() {
      return imagesy($this->image);
   }
   function resizeToHeight($height) {
      $ratio = $height / $this->getHeight();
      $width = $this->getWidth() * $ratio;
      $this->resize($width,$height);
   }
   
   function resizeToWidth($width) {
      $ratio = $width / $this->getWidth();
      $height = $this->getHeight() * $ratio;
      $this->resize($width,$height);
   }
   function resizeToMax($widthMax="",$heightMax="") {
       if($widthMax<($this->getWidth()) || $heightMax<($this->getHeight())) {
           
             $ratio = $widthMax / $this->getWidth();
          $height = $this->getHeight() * $ratio;
          if($height>$heightMax) $this->resizeToHeight($heightMax);
          else $this->resizeToWidth($widthMax);
    }
   }
   function scale($scale) {
      $width = $this->getWidth() * $scale/100;
      $height = $this->getheight() * $scale/100; 
      $this->resize($width,$height);
   }
   function resize($width,$height) {
      $new_image = imagecreatetruecolor($width, $height);
      imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
      $this->image = $new_image;   
   }      
}
?>

A tady je můj starý upload

<?php
class upload {
    function __construct($file="",$folder="",$name="") {
        if($file) $this->file=$file;
        if($folder) $this->folder=$folder;
        if($name) $this->name=$name;
    }
    function set_name($name) {
        if($name) $this->name=$name;
    }
    function set_folder($folder) {
        if($folder) $this->folder=$folder;
    }
    function set_file($file) {
        if($file) $this->folder=$file;
    }
    function mk_dir($folder="") {
        if($folder) $this->folder=$folder;
        if(!file_exists($this->folder)) {
            mkdir($this->folder, 0777 );
        }
    }
    function set_dimensions($width="",$height="") {
        if($width) $this->width=$width;
        if($height) $this->height=$height;
    }
    function nahled($width="",$height="",$folder="nahledy/") {
        $this->folder2=$this->folder.$folder;
        $nahraj=$this->folder.$this->name;;
        $uloz=$this->folder2.$this->name;
        if(!file_exists($this->folder2)) {
            mkdir($this->folder2, 0777 );
        }
        if($width) $this->width2=$width;
        if($height) $this->height2=$height;
        $img=new SimpleImage();
        $img->load($nahraj);
        $img->resizeToMax($this->width2,$this->height2);
        $img->save($uloz);
    }
    function upload() {
        $uloz=$this->folder.$this->name;
        $file=$_FILES[$this->file];
        $soubor = ($file["tmp_name"]);
        $this->mk_dir();
        if($file && $file[name]!="") {        
        if(is_uploaded_file($soubor)){
            move_uploaded_file ($soubor, $uloz);
            }    
        }
        if($this->width || $this->height) {
            if(file_exists($uloz)) {
                $img=new SimpleImage();
                $img->load($uloz);
                $img->resizeToMax($this->width,$this->height);
                $img->save($uloz);
            }
        }
    }
    
    
    //fotky
}



?>

použití jestli si dobře pamatuju
<input type="file" name="obrazek">
<?php
$u=new upload('obrazek','images/','nahrany_obrazek.jpg');
$u->set_dimensions(200,200);
$u->upload();
?>
Peet
Profil
Nerad používám třídy protože tu umí použít každý a bez ní je v pr** chci se to naučit tak abych do písmene věděl co dělám.. našel jsem jeden fakt suprově vysvětlenej návod. ze kterého to už plně chápu.

ZDE JE STRUČNÝ A VELMI JASNÝ NÁVOD
SeparateSK
Profil
<form method="post" enctype="multipart/form-data">
Obrazok (iba jpg  subory) :  <input type="file" name="s"> <input type="submit" name="submit" value="Nahraj obrazok">
</form>
<?php
function obrazok($suborTMP,$suborNAME,$sirka,$vyska)
{
header('Content-Type: image/jpeg');    
    list($sirka_original,$vyska_original) = getimagesize($suborTMP);
    $obrazok_p = imagecreatetruecolor($sirka, $vyska);    
    $obrazok = imagecreatefromjpeg($suborTMP); 
    imagecopyresampled($obrazok_p, $obrazok, 0, 0, 0, 0, $sirka, $vyska, $sirka_original, $vyska_original);    
    imagejpeg($obrazok_p, "$suborNAME", 100);   
header('Content-Type: text/html');
}
if($_POST[submit]){
    $suborType=$_FILES[s][type];
    $suborName=$_FILES[s][name];
    $suborName=str_replace(" ","_",$suborName); //neni nutne ale doporucuje sa, ak je v nazve obrazku medzera
    $suborTMP=$_FILES[s][tmp_name];
    if($suborType=="image/jpeg"||$suborType=="image/jpg") {
        obrazok($suborTMP,$suborName,200,200);
    }
}
?>

parametre na pouzitie funkcie su
$suborTMP - $_FILES[s][tmp_name];
$suborName - $_FILES[s][name]; alebo hocijak ako chces ulozeny obrazok pomenovat
$sirka - 90
$vyska - 65
$mimetyp - rozpoznanie jpeg a png ($_FILES[s][type];)

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: