Ik probeer een aanpassing van een uploadscript te maken, waarbij de foto wordt geresized, upgeload naar een bepaalde map (afhankelijk van de categorie die je kiest) en waarbij de gegevens ook naar een database worden toegegevoegd.

De gegevens worden allemaal toegevoegd aan de database, maar de foto wordt niet aangepast en upgeload naar de juiste map.
Hieronder het script.

het probleem zit hem ergens in de (waarde van) $categorie vermoed ik, want zonder selectie van een map, werkt het wel.


Ik krijg volgende foutmelding:

Warning: imagecreatefromjpeg(../albumfotos//big_nieuw.jpg): failed to open stream: No such file or directory in /opt/www/web/site/admin/album/addpic.php on line 23

Warning: imagecopyresized(): supplied argument is not a valid Image resource in /opt/www/web/site/admin/album/addpic.php on line 103

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /opt/www/web/site/admin/album/addpic.php on line 105

Warning: imagedestroy(): supplied argument is not a valid Image resource in /opt/www/web/site/admin/album/addpic.php on line 110

Warning: filesize(): Stat failed for ../albumfotos/24/nieuw.jpg (errno=2 - No such file or directory) in /opt/www/web/site/admin/addpic.php on line 120

->alle mappen zijn chmod 777.

->Ik laad het script als volgt:
index2.php?content=album&actie=addpic


----addpic.php-----
<?
require("config.php");


if (isset($_POST['uploaden']))
{
require("config.php");


function create_image_from($ext,$naam)
{
if ($ext == 'jpg')
$org = imagecreatefromjpeg("../albumfotos/".$categorie."/big_".$naam);
elseif ($ext == 'gif')
$org = imagecreatefromgif("../albumfotos/".$categorie."/big_".$naam);
elseif ($ext == 'png')
$org = imagecreatefrompng("../albumfotos/".$categorie."/big_".$naam);
else
die("ERROR while creating image -> create_image_from");

return $org;
}

function complete_img($ext,$create,$naam)
{
if ($ext == 'jpg')
imagejpeg($create, "../albumfotos/".$categorie."/".$naam, 100);
elseif ($ext == 'gif')
imagegif($create, "../albumfotos/".$categorie."/".$naam, 80);
elseif ($ext == 'png')
imagepng($create, "../albumfotos/".$categorie."/".$naam, 80);
else
die("ERROR while creating image -> complete_img");
}

$img = $foto_name;

if ($img == "")
{
echo "U heeft geen bestand opgegeven.";
exit();
}
/*
$naam = explode("/", $foto_name);
$naam = end($naam);
$naam = strtolower($naam);
*/
$expl = explode(".", $img);
$ext = end($expl);
$ext = strtolower($ext);

$naam = $_POST['naam'].".".$ext;

if (!(($ext == 'jpg') || ($ext == 'gif') || ($ext == 'png')))
{
echo "U afbeelding heeft niet de juiste extensie.<br>";
echo "Toegestaan zijn: gif, jpg en png<br>";
exit();
}

copy($foto,"../albumfotos/".$categorie."/big_".$naam);

// functie orginele foto ophalen
$org = create_image_from($ext,$naam);

$size = getimagesize("../albumfotos/".$categorie."/big_".$naam);
$width = $size[0];
$height = $size[1];

if ($size[0] == $size[1])
{
$newwidth = 450;
$newheight = 450;
}
elseif ($size[0] > $size[1])
{
$newwidth = 450;
$newheight = round($size[1] * 450 / $size[0]);
}
elseif ($size[0] < $size[1])
{
$newheight = 450;
$newwidth = round($size[0] * 450 / $size[1]);
}
else
{
echo "ERROR while createing image -> size";
echo "$size[0] x $size[1]";
exit();
}

$create = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($create, $org, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagecopyresampled ($create, $org, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// functie orginele foto ophalen
complete_img($ext,$create,$naam);

imagedestroy($org);
imagedestroy($create);
$del = "../albumfotos/".$categorie."/big_".$naam;
//echo $del;
unlink($del);

$$img_dirsize = $foto_size;
$name = $naam;
$size = floor($$img_dirsize / 1024);
$datum = date("Y-m-d H:i:s");
$sizeNew = filesize("../albumfotos/".$categorie."/".$naam);
$sizeNew = floor($sizeNew / 1024);

// invoegen in Database
$query="INSERT INTO foto (bestand, omschrijving, categorie, auteur, datum) ";
$query .= "VALUES ('";
$query .= $name ."','";
$query .=$_POST[omschrijving] ."','";
$query .=$_POST[categorie] ."','";
$query .=$_POST[auteur] ."','";
$query .=$_POST[datum]."');";
$result - mysql_query($query) or die ("Fout: " . mysql_error());



echo "Orgineel:<br />";
echo "Naam: ".$foto_name."<br />";
echo "Grootte: ".$width." x ".$height."<br />";
echo "Aantal Kb: ".$size." Kb<br /><br />";

echo "Nieuw:<br />";
echo "Naam: ".$name."<br />";
echo "Grootte: ".$newwidth." x ".$newheight."<br />";
echo "Aantal Kb: ".$sizeNew." Kb<br />";
echo "Laatst Gewijzigd: ".$datum."<br />";


?>
<center>
Uw afbeelding is geupload.
<hr><img src="<? echo ("../albumfotos/".$categorie."/".$name);?>"><hr>
Nog een afbeelding uploaden:
</center>
<?php

}
?>

<center>
<table>
<form method="post" action="<? echo $PHP_SELF; ?>" enctype="multipart/form-data">
<tr><td>Bestand:</td><td><div align="left">
<input type="file" name="foto">
</div></td></tr>
<tr>
<td align="center"><div align="left">Nieuwe naam </div></td>
<td align="center"><div align="left">
<input name="naam" type="text" id="name">
</div></td>
</tr>
<tr>
<td align="center"><div align="left">Omschrijving</div></td>
<td align="center"><div align="left">
<input name="omschrijving" type="text" id="omschrijving">
</div></td>
</tr>
<?php
include ("select_categorie.php");
include ("select_auteur.php");
?>
<tr>
<td align="center"><div align="left">Datum</div></td>
<td align="center"><div align="left">
<input name="datum" type="text" id="datum">
</div></td>
</tr>
<tr>
<td colspan="2" align="center">&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="uploaden" value="Uploaden" /></td>
</tr>
</form>
</table>
</center>


-- select_auteur.php --
<?php

echo "
<tr>
<td>Auteur</td>
<td>
<select name=\"auteur\">";

$query = "SELECT * FROM auteurs order by naam ASC";
$resultaat = mysql_query($query) or die ("query mislukt");
while ($obj = mysql_fetch_object($resultaat)){
echo "<option value=\"$obj->id\">$obj->naam ($obj->email)</option>\n";}

echo"</select>
</td>
</tr>";


?>

--select_categorie --

<?php
echo "
<tr>
<td>Categorie</td>
<td>
<select name=\"categorie\">";

$query = "SELECT * FROM foto_categorie order by id DESC";
$resultaat = mysql_query($query) or die ("query mislukt");
while ($obj = mysql_fetch_object($resultaat)){
echo "<option value=\"$obj->id\">$obj->categ</option>\n";}

echo"</select>
</td>
</tr>";


?>
Jan schreef op 25.08.2005 10:15
Ik probeer een aanpassing van een uploadscript te maken, waarbij de foto wordt geresized, upgeload naar een bepaalde map (afhankelijk van de categorie die je kiest) en waarbij de gegevens ook naar een database worden toegegevoegd.

De gegevens worden allemaal toegevoegd aan de database, maar de foto wordt niet aangepast en upgeload naar de juiste map.
Hieronder het script.

het probleem zit hem ergens in de (waarde van) $categorie vermoed ik, want zonder selectie van een map, werkt het wel.


Ik krijg volgende foutmelding:

Warning: imagecreatefromjpeg(../albumfotos//big_nieuw.jpg): failed to open stream: No such file or directory in /opt/www/web/site/admin/album/addpic.php on line 23


in die eerste foutmelding staat een dubbele slash, vlak voor big_nieuw.jpg
dat weet ik, normaal moet tussen die 2 // de waarde (map) van $categorie komen te staan, maar dat gebeurt dus niet.
De bekende vraag: Waar komt $categorie vandaan?
Misschein als je nou van $categorie eens $_POST['categorie'] maakte, dan heb je al een iets grotere kans van slagen.
Die SELECT tag voor het veld categorie doe je via een query zie ik. Als je kijkt in de HTML code van je pagina, staan de resultaatwaarden van je query dan ook inderdaad ingevuld?

dus:
<OPTION value="1">categorie1</OPTION>
<OPTION value="2">categorie2</OPTION>
<OPTION value="3">categorie3</OPTION>

Als er bij value niets staat, zit de fout in je query (misschien is 'categ' niet de juiste veldnaam)

Als er wel iets staat, dan weet je in ieder geval al dat je query correct is.
Jelmer schreef op 25.08.2005 23:47
Misschein als je nou van $categorie eens $_POST['categorie'] maakte, dan heb je al een iets grotere kans van slagen.


inderdaad dat werkte!
ik heb ook de "action" van het formulier moeten aanpassen, die
<? echo $PHP_SELF; ?>
werkte niet, ik heb er dan maar "index2.php?content=album&actie=addpic" van gemaakt.
Ik heb dat laatste probleem nog gehad bij scripts, aan wat zou dat kunnen liggen?

THX,
jan

Reageren