Autor Zpráva
webmaster
Profil *
ahoj,
mam script na upload obrázků a potřeboval bych, aby se mi po uploadování udělala také zmenšenina obrázku(třeba do nějaké jiné složky) . Nevíte jak to udělat?

mam tento script, ale nefunguje mi.

upload:

<?php

if (substr(phpversion(),0,3) <= '4.1') exit("<div style='color:red'>Tento skript vyžaduje PHP 4.1 nebo pozdější</div>");
include('config.php');
$mt = eregi_replace('|', ', ', $mime_types);
$ex = eregi_replace('|', ', ', $extensions);
$mb = $max_att / 1048576;
?>
<form name="a" action='<?php echo "$PHP_SELF" ?>' method="post" enctype="multipart/form-data">
<ul>
<li>Max. velikost <?php echo number_format($max_att,0,'.',',') ?> bajtů (<?php echo number_format($mb,0,'.',',') ?> MB).
<li>Jméno souboru smí obsahovat pouze 1 tečku.
<li>Povolené extenze jsou <?php echo ""$ex"" ?>.
<li>Povolené MIME types jsou <?php echo ""$mt"" ?>.
</ul>
<input type="file" name="fileatt">
<p><input class="butt" type="submit" name="upload_submit" value=" Uložit ">
<input class="butt" type="reset" value=" Zrušit "></p>
</form>

<?php
if(isset($_POST['upload_submit'])) {
//set_time_limit(0); //// POVOLIT NEOMEZENÝ ČAS
$valid = true;
$fileatt_size = $_FILES['fileatt']['size'];
$fileatt_type = $_FILES['fileatt']['type'];
$fileatt_name = $_FILES['fileatt']['name'];
$fileatt_tmp = $_FILES['fileatt']['tmp_name'];

//// kontrola velikost souboru
if($fileatt_size > $max_att) {
$valid = false;
$err_msg .= '<li>Soubr je větší nežli povolená velikost ' . number_format($max_att,0,'.',',') . ' bajtů. Skutečná velikost ' . number_format($fileatt_size,0,'.',',') . ' bajtů.';
}
//// kontrola typu souboru
$regexp = "^" . $mime_types . "$";
if(!eregi($regexp,$fileatt_type)) {
$valid = false;
$mt = eregi_replace('|', ', ', $mime_types);
$err_msg .= "<li>Nepovolený MIME type "$fileatt_type". Povolené MIME type jsou: $mt" . '.';
}
//// kontrola délky extenze
$dot_pos = strrpos($fileatt_name,'.');
$ext_len = strlen($fileatt_name) - ($dot_pos);
if($ext_len != 3 && $ext_len != 4) {
$valid = false;
$err_msg .= "<li>Jméno souboru "$fileatt_name" má extenzi $ext_len znaků dlouhou. Povolené délky jsou 3 nebo 4 znaky.";
}
//// kontrola extenze
$ext = substr($fileatt_name,$dot_pos + 1);
$regexp = "^". $extensions ."$";
if(!eregi($regexp,$ext)) {
$valid = false;
$ex = eregi_replace('|', ', ', $extensions);
$err_msg .= "<li>Jméno souboru "$fileatt_name" má enxtenzi "$ext", která není povolená. Povolené extenze jsou $ex. Soubor smí mít pouze 1 extenzi.";
}
//// kontrola jména souboru
if($dot_pos === false || $dot_pos < 1) {
$valid = false;
$err_msg .= "<li>Jméno souboru "$fileatt_name" je příliš krátké nebo neobsahuje tečku. Před tečkou musí být aspoň 1 znak.";
}

if (!file_exists($up_dir)) {
$oldumask = umask(0);
if (!mkDir($up_dir,0777)) {
$valid = false;
echo "<p style='color:red'>Nezdařilo se vytvořit složku "$up_dir".</p>";
}
umask($oldumask);
}
$dest = $up_dir . $fileatt_name;
if($valid) {
if(!move_uploaded_file($fileatt_tmp,$dest)) {
$valid = false;
$err_msg .= "<li>Soubor "$fileatt_name" se nedařilo uložit.";
}
else {
echo "<p style='font-weight:bold'>Soubor byl úspěšně uložen - Adresa vašeho souboru je ulozene/$fileatt_name </p>";
}
}

if(!$valid) echo "<div style='color:red'>Při ukládání souboru "$fileatt_name" došlo k chybě.<ul>$err_msg</ul></div>";
}
?>


a na to zmenšení:

<?

header('Content-type: image/jpeg');
$galerie=$_GET['pict'];
$jmeno= $_GET['image'];
$adresa="/ulozene/nahledy/".$jmeno;
$adresa_org="ulozene/".$jmeno;

$velikost=getimagesize($adresa_org);
$sirka=$velikost[0];
$vyska=$velikost[1];
$tn_sirka=$sirka*(80/$vyska);
$tn_vyska=80;

$org=ImageCreateFromJpeg($adresa_org);
$tn=ImageCreateTrueColor($tn_sirka+3,$tn_vyska+3);
umask(0000);
ImageCopyResampled($tn,$org,1,1,0,0,$tn_sirka,$tn_vyska,$sirka,$vyska);
ImageJpeg($tn,$adresa);
ImageJpeg($tn);

ImageDestroy($tn);
ImageDestroy($org);
?>


zkuste se na to podívat. nevim proč to nejde. předem dik.
webmaster
Profil *
nikdo nevíte? pls podívejte se mi na to.
pepana
Profil *
seš webmaster, ne?? Tak si poraď
DJ Miky
Profil
seš webmaster, ne?? Tak si poraď

Rada nad zlato, fakt…


nevim proč to nejde. předem dik.

To my taky ne. Co to dělá / nedělá, vypisuje / nevypisuje, hází za chyby?
webmaster
Profil *
tak už sem si to udělal. tak sorry že jsem otravoval.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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