| Autor | Zpráva | ||
|---|---|---|---|
| kweedo Profil |
#1 · Zasláno: 24. 2. 2009, 16:30:04 · Upravil/a: kweedo
Ahoj řeším problém se skriptem, který po uploadu obrázku vytvoří jeho náhled:
<?php
//definice proměnných
$název = $_FILES['fupload']['name'];
$velikost = $_FILES['fupload']['size'];
$typ = $_FILES['fupload']['type'];
$tmp_name = $_FILES['fupload']['tmp_name'];
$error = $_FILES['fupload']['error'];
$cíl = "fotogallery/originaly/".$název;
$path = "fotogallery/nahledy";
$max_width = "200";
$max_height = "200";
//podmínka, která bude platná, když soubor není ve formátu .jpeg
//v Mozille "AND" v IE
if($typ != "image/jpeg" and $typ != "image/pjpeg")
{
echo "Litujeme, ale váš soubor není v požadovaném formátu.<br>";
echo "Soubor musí být ve formátu jpeg.";
echo "Tento soubor je ve formátu ".$typ.".Děkujeme za pochopení";
}
else //když je soubor ve formátu .jpeg
{
move_uploaded_file($tmp_name,$cíl)
or die("Soubor".$název."nelze přesunout do adresáře".$cíl.".Ujistěte se, že složka opravdu existuje");
$size = getImageSize($cíl);
$width = $size[0];
$height = $size[1];
$pw = $width / $max_width;
$ph = $height / $max_height;
if($pw > $ph) $p = $pw;
else $p = $ph;
// $p je poměr pro zmenšení
// vypočítáme výšku a šířku zmenšeného obrázku
$thumb_width = (int)$width / $p;
$thumb_height = (int)$height / $p;
//vytvoříme nový obrázek
$thumb = imagecreatetruecolor($thumb_width,$thumb_height);
chmod($path, 777);
//otevřeme původní obrázek
$image = imagecreatefromjpeg($cíl);
// okopírujeme zmenšený původní obrázek do nového
imagecopyresampled($thumb, $image, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height);
// uložíme thumb
imagejpeg($thumb, $path, 100);
// změníme práva
chmod($path, 777);
echo "<table border=\"O\">";
echo "<tr><td colspan=\"2\">Nahrání bylo úspěšné</td></tr>";
echo "<tr><td>Název souboru</td><td>".$název."</td></tr>";
echo "<tr><td>Velikost souboru</td><td>". $velikost."</td></tr>";
echo "<tr><td>Typ souboru</td><td>". $typ."</td></tr>";
echo "<tr><td>Velikost obrázku</td><td>". $width."×". $height."</td></tr>";
echo "<tr><td>Uloženo v</td><td>". $cíl ."</td></tr>";
echo "<tr><td>Náhled uložen v</td><td>". $path."</td></tr>";
echo "<tr><td>Velikost náhledu</td><td>". $thumb_width."×".$thumb_height."</td></tr>";
echo "<tr><td colspan=\"2\"><a href=\"upload_image.php\"> Zpět </a></td></tr>";
}<form action="save_img.php" method="post" enctype="multipart/form-data"> <table border="1"> <tr><td>Adresa</td><td><input type="file" name="fupload" size="30"></td></tr> <tr><td>Popisek</td><td><input type="text" name="title" size="45"><br></td></tr> <tr><td colspan="2"> <input type="submit" value="-------------------------Nahrát soubor-------------------------"></td></tr> </table> Bohužel tento skript nefunguje. Lépe řečeno funguje jen z části. Fotografie se uploadne ale náhled se nevytvoří. Po volání skriptu se mi zobrazí toto: <b>Warning</b>: imagejpeg() [<a href='function.imagejpeg'>function.imagejpeg</a>]: Unable to open 'fotogallery/nahledy' for writing: Permission denied in <b>C:\xampp\htdocs\xampp\web\pavka\save_img.php</b> on line <b>46</b><br /> <table border="O"><tr><td colspan="2">Nahrání bylo úspěšné</td></tr><tr><td>Název souboru</td><td>P1020280.JPG</td></tr><tr><td>Velikost souboru</td><td>1867759</td></tr><tr><td>Typ souboru</td><td>image/jpeg</td></tr><tr><td>Velikost obrázku</td><td>1920×2560</td></tr><tr><td>Uloženo v</td><td>fotogallery/originaly/P1020280.JPG</td></tr><tr><td>Náhled uložen v</td><td>fotogallery/nahledy</td></tr><tr><td>Velikost náhledu</td><td>150×200</td></tr><tr><td colspan="2"><a href="upload_image.php"> Zpět </a></td></tr> Ještě jen pro zajímavost kód stránky, ze které je skript volán: <h3><center>Nahrání obrázků na server</center></h3><br> <form action="save_img.php" method="post" enctype="multipart/form-data"> <table border="1"> <tr><td>Adresa</td><td><input type="file" name="fupload" size="30"></td></tr> <tr><td>Popisek</td><td><input type="text" name="title" size="45"><br></td></tr> <tr><td colspan="2"> <input type="submit" value="-------------------------Nahrát soubor-------------------------"></td></tr> </table> Používám Windows Vista Home Premium, Apache, PHP 4, a PEAR mám také. Podle mého je chyba někde v právech, ale nevím, jak je nastavit. Díky moc za každou radu |
||
| ninja Profil |
#2 · Zasláno: 24. 2. 2009, 16:38:47
Jediny dulezity radek je Unable to open 'fotogallery/nahledy' for writing: Permission denied in...
Mate spatne nastavena prava zapisu do souboru (adresare). |
||
| kweedo Profil |
#3 · Zasláno: 24. 2. 2009, 16:42:40 · Upravil/a: kweedo
„Jediny dulezity radek je Unable to open 'fotogallery/nahledy' for writing: Permission denied in...“
„Mate spatne nastavena prava zapisu do souboru (adresare).“ To vím já jen jestli je ten skript dobře napsaný. Nevíte kde mám tato práva nastavit? |
||
|
Časová prodleva: 18 let
|
|||
0