par
cypat2 » 14 mai 2013, 14:25
Bonjour, j'essaie de faire un formulaire d'upload d'image.(selon un code que j'ai trouver sur le net il y a quelque temps)
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:
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
l'erreur m'indique bien un mauvais chemin, mais je n'arrive pas à trouver d'où sa vient.
<?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,
Bonjour, j'essaie de faire un formulaire d'upload d'image.(selon un code que j'ai trouver sur le net il y a quelque temps)
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:
[quote]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[/quote]
l'erreur m'indique bien un mauvais chemin, mais je n'arrive pas à trouver d'où sa vient.
[php]<?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>';
?>[/php]
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 :x
Ceci dit si vous pouvez me conseiller deux trois truc pour un code plus "propre" je dit pas non.
Cordialement,