PHP / Upload image : problème de titre

Bonjour,

J'ai un script PHP pour uploader une image qui fonctionne très bien ou presque. En effet, l'envoi de l'image (donc l'upload) fonctionne. Le seul problème, c'est que je n'arrive pas à donner un titre différent à chaque image uploader.

Voici mon script pour l'upload image :

<?php
include("/require/function.php");
?>

<?php
if(isset($_POST['submit']))
{
$img=$_FILES['img']['name'];
$img_tmp=$_FILES['img']['tmp_name'];
$errors = array();

if(!empty($img_tmp))
{
$image=explode('.',$img);
$image_ext=end($image);

if(in_array(strtolower($image_ext),array('png','gif','jpeg','jpg')) === false)
{
$errors[] = "Veuillez saisir une image valide.";
}

}

if(empty($errors))
{

upload_img($img_tmp);

}else{
foreach($errors as $error)
{
echo $error;
}
}
}

?>


<form method="POST" action="" enctype="multipart/form-data">

<input type="file" name="img"/><br><br>

<input type="submit" value="Uploader" name="submit"/>
</form>


Et voici le code dans ma page function.php :

<?php

function upload_img($img_tmp)

{
if(file_exists($img_tmp))

{
$image_size=getimagesize($img_tmp);
if($image_size['mime'] == 'image/jpeg')
{
$image_src=imagecreatefromjpeg($img_tmp);

}else if($image_size['mime'] == 'image/png')
{
$image_src=imagecreatefrompng($img_tmp);
}else if($image_size['mime'] == 'image/gif')
{
$image_src=imagecreatefromgif($img_tmp);
}else{
echo"Votre image n'est pas valide";
$image_src=false;
}
if($image_src !== false)
{
$image_width = 600;

if($image_size[0] <= $image_width)
{
$image_finale=$image_src;

}else{
$new_width[0] = $image_width;
$new_height[1] = ($image_size[1]/$image_size[0])*$image_width;

$image_finale=imagecreatetruecolor($new_width[0], $new_height[1]);
imagecopyresampled($image_finale, $image_src,0,0,0,0,$new_width[0], $new_height[1],$image_size[0],$image_size[1]);

}
	imagejpeg($image_finale,'img/.jpg');
}
}

}


?>


Comment faire ?

Merci d'avance.

10 réponses

  1. J'ai pas compris que'est ce que tu veux dire exactement,mais si tu parle de donner un nom différent aux images uploader en cas ou le nom de fichier source est le même tu peux essayer tout simplement de ronomer les fichier en utilisant la fonction rename ( string $oldname , string $newname [, resource $context ] ) pour le nom je te conseille de le crypté avec le md5 et faire une table d'indexation dans la base de données
    1. En faite, je veux donner un nom différent à chaque image uploader car en ce moment, quand j'upload une image, ils ont toujours des noms identiques une fois uploader (alors que ce sont des images différentes).
      1. Si t as rien a faire avec le nom d'origine alors y a pas de problème tu peux toujours essayer de renommer les fichiers uploader Sinon essaye de récupérer le nom d'origine $nomOrigine = $_FILES['monfichier']['name']; puis renommer le fichier avec ce nom
        1. Le nom d'une image uploader, c'est cette partie du code :

          imagejpeg($image_finale,'img/.jpg');

          Mais je ne sais pas comment utiliser ce que tu viens de me donner...
          1. Cette fonction crée une image JPEG depuis l'image fournie
            bool imagejpeg ( resource $image [, string $filename [, int $quality ]] ) le deuxième paramètre est le nom d'image JPEG crée or toi t'as pas donné un nom a ton image crée !! imagejpeg($image_finale,'img/.jpg');
            essaye de faire ça :
            $nomOrigine = $_FILES['img']['name'];
            imagejpeg($image_finale,'img/'.$nomOrigine .'.jpg');
            1. Par contre, comment récupérer l'image pour l'afficher sur le site ?

              J'ai mis ça mais sa ne marche pas trop :

              <a href="localhost/Location/admin/img/<?php echo $photo["img"]; ?>" rel="lightbox" target="_blank" title="<?php echo $photo["title"]; ?>"><img src="localhost/Location/admin/img/<?php echo $photo["img"]; ?>" style="width:201px;" /></a></div>
              						
              1. Premièrement il est vraiment déconseiller de mélanger le code HTML avec le PHP tu dois travailler avec un modèle view-contrôleur (MVC) pour une meilleure visibilité de code et pour facilité la maintenance et la mise a jour de code. encore une chose le chemin de fichier ne doit dans aucun cas dépend de localhost sinon tu sera obligé de refaire tout une fois le site est hébergé.

                le problème est tout simplement dans le chemin de ton image enlève le localhost