Autor Zpráva
kweedo
Profil
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>";
}
<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>

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
Jediny dulezity radek je Unable to open 'fotogallery/nahledy' for writing: Permission denied in...

Mate spatne nastavena prava zapisu do souboru (adresare).
kweedo
Profil
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?

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: