Autor Zpráva
Pako
Profil *
Tohle jsem včera zkutil:

 

$slozka = "soubory";
$nazev_souboru = $_FILES['the_file']['tmp_name'];
$allowed_types = array("image/gif","image/jpeg","image/pjpej","image/png");
$image_max_width = "600";
$my_max_file = "2000000";
$Image = getImageSize($_FILES['the_file']['tmp_name']);
$NewWidth = $Image[0];
$NewHeight = $Image[1];
$tototo = $Image[mime];

if ($the_file = ""):
echo "<center><b>Nebyl vybrán žádný soubor!</b></center>";
elseif(!in_array($_FILES['the_file']['type'],$allowed_types)):
echo "<center><b>Špatný typ</b></center>";
elseif($_FILES['the_file']['size'] > $my_max_file):
echo "<center><b>Velikost obrázku je větší než povolených 2MB!</b></center>";
elseif ($NewWidth > $image_max_width):

echo "<center><b>Váš obrázek je širší než $image_max_width px , respektivě $NewWidth px</b></center>";
if ($tototo == "image/gif"): $konc = ".gif";
elseif ($tototo == "image/jpeg"): $konc = ".jpg";
elseif ($tototo == "image/pjpej"): $konc = ".jpg";
elseif ($tototo == "image/png"): $konc = ".png";
endif;

$countue = mysql_result(mysql_query("SELECT MAX(fotog_fot_id) FROM fotogalerie_fotky"), 0);
$countui = $countue + 1;
$names = "img" . $countui;
$named = "img" . $countui. "$konc";

$Name = $_FILES['the_file']['tmp_name'];

$pomer = $image_max_width / $NewWidth;
$sirka = $NewWidth*$pomer;
$vyska = $NewHeight*$pomer;
$out = ImageCreateTrueColor ($sirka, $vyska);
$source = ImageCreateFromJpeg ($Name);

if ($tototo == "image/jpeg"):
$source = ImageCreateFromJpeg ($Name);
ImageCopyResized ($out, $source,0,0,0,0,$sirka,$vyska,$NewWidth,$NewHeight);
ImageJpeg ($out, $names, 75);
elseif ($tototo == "image/png"):
$source = ImageCreateFromPng ($Name);
ImageCopyResized ($out, $source,0,0,0,0,$sirka,$vyska,$NewWidth,$NewHeight);
ImagePng ($out, $names);
endif;

$cil = $slozka . "/" .$named;
$copy = move_uploaded_file($nazev_souboru, $cil)
or die ("Přenesený soubor nelze zkopírovat");
chmod ($cil, 0777);

ImageDestroy($out);
ImageDestroy($source);

if ($copy == true):

echo "<center><img src="$cil" style="border: 1px solid #000066"></center><br /><br />";

....


ale má to jeden háček, při zmenšování obrázku se mi obrázek nezmenší, resp se mi do složky Soubory nahraje ten puvodní větší. Jak to mám proházet, aby se mi nahrál ten správný, zmenšený s šířkou 600px? Díky za pomoc, už se s tim tu přes 2 hodiny dusim:(
bitbit
Profil
Pako

$cil = $slozka . "/" .$named;
$copy = move_uploaded_file($nazev_souboru, $cil)
or die ("Přenesený soubor nelze zkopírovat");
chmod ($cil, 0777);


Zkus napsat


$cil = $slozka . "/" .$named;
$copy = move_uploaded_file($out, $cil)
or die ("Přenesený soubor nelze zkopírovat");
chmod ($cil, 0777);



pokud jsem z toho kodu pochopil tak vysledny zmenseny obrazek je v promenne $out a proto by si mel kopirovat tuto promnnou a ne $nazev_souboru.

Ale jen hadam nemam to kde vyzkouset.

Edit:

Blbost no zkus to, podle me nejvetsi problem dela move_uploaded_file(), ten vyslednej neni prece uploadovanej ale vytvorenej skriptem.
bitbit
Profil
A co zkusit

ImageJpeg ($out, $names, 75); -> ImageJpeg ($out, $named , 75); ulozit to rovnou do danne slozky?

co sem se docet tak todle uklada danny obrazek.

ImagePng ($out, $names); -> ImagePng ($out, $named);

Zkus to a uvidis
Pako
Profil *
bitbit::
zkusil sem:

....
		if ($tototo == "image/jpeg"):

$source = ImageCreateFromJpeg ($Name);
ImageCopyResized ($out, $source,0,0,0,0,$sirka,$vyska,$NewWidth,$NewHeight);
ImageJpeg ($out, $named, 75);
elseif ($tototo == "image/png"):
$source = ImageCreateFromPng ($Name);
ImageCopyResized ($out, $source,0,0,0,0,$sirka,$vyska,$NewWidth,$NewHeight);
ImagePng ($out, $named);
endif;


....

a nic:(

zkusil sem

$cil = $slozka . "/" .$named;

$copy = move_uploaded_file($out, $cil)
or die ("Přenesený soubor nelze zkopírovat");
chmod ($cil, 0777);


a hlásí Přenesený soubor nelze zkopírovat

to je v pytli, vubec netušim co s tim:(
Pako
Profil *
hilfe mir nekdo:( protoze já uz vazne nevim:(( plíííís :( na kolenou
Toto téma je uzamčeno. Odpověď nelze zaslat.

0