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.