J'ai des catégories qui sont gérer par mysql (le code pour insérer les images dans la BDD n'est pas encore fait).
Pour chaque rubrique, un dossier est créer dans un dossier "Galerie" si j'ai donc la rub1 et Rub2 j'aurais donc une arborescence qui ressemble a cela:
ROOT
-- Galerie
-- -- Rub1
-- -- -- mini
-- -- Rub2
-- -- -- mini
Mon souci est qu'au final je n'arrive pas a uploadé mes images (Le but premier du code quoi..) j'obtiens l'erreur:
l'erreur m'indique bien un mauvais chemin, mais je n'arrive pas à trouver d'où sa vient.Warning: imagejpeg(./Rub1/B811A.jpg): failed to open stream: No such file or directory in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\Galerie - sql\galerie_img_add.php on line 108
Rub1(j'ai fait un echo afin de vérifier que j'ai ma variable qui est ok)
Warning: imagejpeg(./Rub1/mini/B811A.jpg): failed to open stream: No such file or directory in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\Galerie - sql\galerie_img_add.php on line 110
<?php
//connexion
//on insère le formulaire
?>
<form method="post" enctype="multipart/form-data" action="">
<input type="file" name="file" size="30">
<br/>
Rubrique:
<?php $query = "SELECT id, titre FROM Rubrique ORDER BY titre DESC";
$result = mysql_query($query) or die("ERROR"); ?>
<select name='select_rubrique'>
<?php
$Selected = 0;
while ($row = mysql_fetch_array($result))
{
if($Selected == 0)
{
echo '<option value="', $row[0], '" selected="selected">', $row[1],
'</option>';
$Selected = 1;
}
else
{
echo '<option value="', $row[0], '">', $row[1], '</option>';
}
}
echo '</select>
<br/><br/>
<input type="submit" name="upload" value="Envoyer">
</form>';
function getExtension($str)
{
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
if(isset($_POST['upload']))
{
define ("MAX_SIZE", "3000");
$id = $_POST['select_rubrique'];
$query = "SELECT id, titre FROM Rubrique WHERE id='".$id."'";
$result = mysql_query($query) or die('erreur de sql'.$sql.'<br>'.mysql_error());;
while ($grp = mysql_fetch_array($result))
{
$rub_name = $grp['titre'];
}
echo "<br/><br/> ID: ".$row[0]." ou ".$id."<br/><br/> titre:".$rub_name."";
$errors = 0;
$filename = $_FILES["file"]["name"];
$uploadedfile = $_FILES['file']['tmp_name'];
$type_file = $_FILES['file']['type'];
if ($filename)
{
if( !is_uploaded_file($uploadedfile) )
{
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
elseif( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'gif') )
{
exit("Le fichier n'est pas une image");
}
else
{
$size = filesize($_FILES['file']['tmp_name']);
if ($size > MAX_SIZE*1024)
{
exit ("verifier la taille de votre image!!");
$errors=1;
}
$extension = getExtension($filename);
$extension = strtolower($extension);
if($extension=="jpg" || $extension=="jpeg" )
{
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefromjpeg($uploadedfile);
}
else if($extension=="png")
{
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefrompng($uploadedfile);
}
else
$src = imagecreatefromgif($uploadedfile);
list($width,$height) = getimagesize($uploadedfile);
$newwidth = 800;
$newheight = ($height/$width)*$newwidth;
$tmp = imagecreatetruecolor($newwidth,$newheight);
$newwidth1 = 100;
$newheight1 = ($height/$width)*$newwidth1;
$tmp1 = imagecreatetruecolor($newwidth1,$newheight1);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagecopyresampled($tmp1, $src, 0, 0, 0, 0, $newwidth1, $newheight1, $width, $height);
$filename = "". $_FILES['file']['name'];
$filename1 = "". $_FILES['file']['name'];
imagejpeg($tmp,"./".$rub_name."/".$filename."",100);
echo $rub_name;
imagejpeg($tmp1,"./".$rub_name."/mini/".$filename1."",100);
imagedestroy($src);
imagedestroy($tmp);
imagedestroy($tmp1);
echo '<p>Miniature: <img src="./'.$rub_name.'/mini/'.$filename1.'"/><br/><br/>';
echo 'Image originale: <a href="./'.$rub_name.'/'.$filename.'"><img src="./'.$rub_name.'/'.$filename.'" width="120 height="120"/></a></p>';
}
}
}
echo '<br/><br/> <a href="index.php?page=Galerie">Retour</a>';
?>
En vous remerciant d'avance pour votre aide, d'autant plus que le code est très "lourd" et surement très mal optimisé,Cordialement,
Cypat2
EDIT: JE viens de m'apercevoir que j'avais oublier /Galerie/ dans mes chemins >< 2H de recherche pour ça
Ceci dit si vous pouvez me conseiller deux trois truc pour un code plus "propre" je dit pas non.
Cordialement,