PHP / Upload image : problème de titre

nik029 Messages postés 315 Statut Membre -  
nik029 Messages postés 315 Statut Membre -
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 101 Statut Membre 5
 
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 101 Statut Membre 5
 
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 101 Statut Membre 5
 
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 315 Statut Membre 44
 
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 315 Statut Membre 44
 
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 315 Statut Membre 44
 
Merci beaucoup, sa marche bien ! :)
0
hocinebarca Messages postés 101 Statut Membre 5
 
de rien
0
nik029 Messages postés 315 Statut Membre 44
 
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 101 Statut Membre 5
 
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 315 Statut Membre 44
 
D'accord. Je vais travailler sur cela alors. Merci beaucoup. ;)
0