Autor Zpráva
Sajgon
Profil *
Ahojda,

k uploadování obrázků na server používám tento script
<? 
if (!jeadmin()) return; 
include "scripts.php"; 
?>
<br />
<div align="left" style="text-align:left; margin-left:20px"><a href="http://nejakyserver/databaze/index.php?p=stavby">NEVKLÁDAT OBRÁZEK a přejít na databázi staveb</a></div><br />
<br />
<form enctype="multipart/form-data" method="post" action="<? echo $mainodkaz."upload&amp;odeslat=1&amp;idstavby=".$idstavby ?>"> 
<input name="fotka" type="file" size="20"> 
<input type="submit" value="Nahrát"> 
</form> 

<?php 

if ($_GET['odeslat'] == 1 ) { 

$soubor_velikost = ($_FILES['fotka']['size']); 
$soubor_typ = ($_FILES['fotka']['type']); 
$soubor_nazev = ($_FILES['fotka']['name']); 

// odstraneni mezer, diakritiky a omezeni poctu znaku v nazvu souboru 
$ids = $idstavby;
$soubor_nazev = ereg_replace(" +", "", $soubor_nazev); 
$soubor_nazev = (StrTr($soubor_nazev, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz")); 
rename($soubor_nazev,$ids."jpg");

If ((strlen($id.".jpg")) < 50) { 

$soubor_docasne = ($_FILES['fotka']['tmp_name']); 
$adresar = $_SERVER['DOCUMENT_ROOT']."/databaze/images/";
$cil = $adresar . $ids.".jpg"; 
$soubor_velikost_kB = round($soubor_velikost / 1024); 

if (($soubor_velikost < 3145729) && ($soubor_velikost != 0)) { 
if (($soubor_typ != "application/octet-stream") && (($soubor_typ == "image/jpeg") || ($soubor_typ == "image/pjpeg"))) { 

if (move_uploaded_file($soubor_docasne, $cil)) { 
list($sirka, $vyska, $typ, $atributy) = getimagesize($cil); 
if ($sirka > 800 || $vyska > 800) echo "<strong>Obrázek nesmí mít šířku, nebo výšku, větší než 800px!</strong>";
else echo ("<br />Fotka " . $ids.".jpg" . " o velikosti " . $soubor_velikost_kB . " kB a rozměrech " . $sirka . "x" . $vyska . " byla úspěšně nahrána.<br />"); 
} 

} else {echo ("<br /><strong>Vybraný soubor není požadovaného typu (JPG).</strong>");} 
} else {echo ("<br /><strong>Vybraný soubor je příliš velký. Maximální velikost je 3 MB.</strong>");} 
} else {echo ("<br /><strong>Maximální povolený počet znaků v názvu souboru je 50.</strong>");} 

} 

?> 


Prosím nekoukejte v této chvíli na nějakou (ne)bezpečnost, kód je funkční a to mi zatím stačí.

Teď k podstatnému. Prosím někoho šikovného a ochotného, který by mi do tohoto kódu implementoval automatické vytvoření náhledu. Zkrátka aby mi při samotném uploadu např. obrázku "1234.jpg" ihned kód vytvořil i náhled (se striktními rozměry 100x80 px - ať je pak výsledný náhled pokřivenej, jak chce :-) "1234_thumb.jpg". Zároveň trochu odvážně požádám, abyste mne prosím neodkazovali na nějaký tutoriál. Prošel jsem jich dost, ale jsem asi pitomej :-D

Mockrát děkuji človíčku, který mi pomůže.
alter ego
Profil *
A co třeba takto?
<? 
if (!jeadmin()) return; 
include "scripts.php"; 
?>
<br />
<div align="left" style="text-align:left; margin-left:20px"><a href="http://nejakyserver/databaze/index.php?p=stavby">NEVKLÁDAT OBRÁZEK a přejít na databázi staveb</a></div><br />
<br />
<form enctype="multipart/form-data" method="post" action="<? echo $mainodkaz."upload&amp;odeslat=1&amp;idstavby=".$idstavby ?>"> 
<input name="fotka" type="file" size="20"> 
<input type="submit" value="Nahrát"> 
</form> 

<?php 

if ($_GET['odeslat'] == 1 ) { 

$soubor_velikost = ($_FILES['fotka']['size']); 
$soubor_typ = ($_FILES['fotka']['type']); 
$soubor_nazev = ($_FILES['fotka']['name']); 

// odstraneni mezer, diakritiky a omezeni poctu znaku v nazvu souboru 
$ids = $idstavby;
$soubor_nazev = ereg_replace(" +", "", $soubor_nazev); 
$soubor_nazev = (StrTr($soubor_nazev, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz")); 
rename($soubor_nazev,$ids."jpg");

If ((strlen($id.".jpg")) < 50) { 

$soubor_docasne = ($_FILES['fotka']['tmp_name']); 
$adresar = $_SERVER['DOCUMENT_ROOT']."/databaze/images/";
$cil = $adresar . $ids.".jpg"; 
$soubor_velikost_kB = round($soubor_velikost / 1024); 

if (($soubor_velikost < 3145729) && ($soubor_velikost != 0)) { 
if (($soubor_typ != "application/octet-stream") && (($soubor_typ == "image/jpeg") || ($soubor_typ == "image/pjpeg"))) { 

if (move_uploaded_file($soubor_docasne, $cil)) { 
list($sirka, $vyska, $typ, $atributy) = getimagesize($cil); 
if ($sirka > 800 || $vyska > 800)
{
echo "<strong>Obrázek nesmí mít šířku, nebo výšku, větší než 800px!</strong>";
}
else 
{
 $thumb=$_SERVER['DOCUMENT_ROOT']."/databaze/images/".$ids."_small.jpg";// cil
 $image_big=$_SERVER['DOCUMENT_ROOT']."/databaze/images/".$ids.".jpg"; //originalni(velky) obrazek 400x400 - třeba
 if (!@fopen($thumb,"r") and @fopen($image_big,"r")==true); // jestlie neni nalezen maly nahled a zdrojovy obrazek existuje
 $in_size=getimagesize($image_big);// zjisti velikost zdroje
 $mala_sirka=100;  //vypocita 1/4z puvodni sirky
 $mala_vyska=80; // vypocita 1/4 z puvodni vysky
 $im_in = imagecreatefromjpeg ($image_big);
 $im_out = imagecreatetruecolor ($mala_sirka, $mala_vyska);
 imagecopyresampled($im_out, $im_in, 0, 0, 0, 0, $mala_sirka, $mala_vyska, $in_size[0], $in_size[1]); // zmeni velikost
 imagejpeg($im_out,$thumb);// vezmi presamplovana data a uloz je do $thumb
 echo ("<br />Fotka " . $ids.".jpg" . " o velikosti " . $soubor_velikost_kB . " kB a rozměrech " . $sirka . "x" . $vyska . " byla úspěšně nahrána.<br />"); 
}
} 

} else {echo ("<br /><strong>Vybraný soubor není požadovaného typu (JPG).</strong>");} 
} else {echo ("<br /><strong>Vybraný soubor je příliš velký. Maximální velikost je 3 MB.</strong>");} 
} else {echo ("<br /><strong>Maximální povolený počet znaků v názvu souboru je 50.</strong>");} 

} 

?> 

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: