PHP / Upload image : problème de titre

Fermé
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 - 3 juil. 2012 à 09:17
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 - 3 juil. 2012 à 13:10
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.

A voir également:

10 réponses

hocinebarca Messages postés 87 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 10 juillet 2012 5
3 juil. 2012 à 09:44
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
hocinebarca Messages postés 87 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 10 juillet 2012 5
3 juil. 2012 à 10:01
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
hocinebarca Messages postés 87 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 10 juillet 2012 5
3 juil. 2012 à 10:12
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
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
3 juil. 2012 à 09:49
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).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
Modifié par nik029 le 3/07/2012 à 10:03
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...
0
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
3 juil. 2012 à 10:15
Merci beaucoup, sa marche bien ! :)
0
hocinebarca Messages postés 87 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 10 juillet 2012 5
3 juil. 2012 à 10:17
de rien
0
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
3 juil. 2012 à 10:32
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>
						
0
hocinebarca Messages postés 87 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 10 juillet 2012 5
3 juil. 2012 à 11:51
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
0
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
3 juil. 2012 à 13:10
D'accord. Je vais travailler sur cela alors. Merci beaucoup. ;)
0