Renommer les images

19 posts in this topic

Posted · Report post

Bonjour,

Mon petit problème du jour est de pouvoir renommer les images en fonction du nom du produit.

Donc pour exemple : je voudrais avoir comme nom d' image "mon_produit_01.jpg" au lieu de "100707_145243_PEEL_TwTgkh.jpg".

J'aimerais donc récupérer la variable $nom figurant dans le formulaire d'ajout de produit et l'injecter dans la fonction upload.

Seulement je n'y arrive pas... J'ai tenté quelques modif' mais aucune ne semble marcher véritablement.

Voici le code de la fonction :

function upload($the_file) {


global $the_path;


		$the_file_tmp = $the_file['tmp_name'];


		$the_file_name = $the_file['name'];


		$error = validate_upload($the_file); 	// Teste la validité du document


		$extension = substr($the_file_name, strrpos($the_file_name, "."));


		$dateheure = strftime("%d%m%y_%H%M%S");


		$mdp = MDP();


		$the_new_file_name = $nom . "_" .$mdp.$extension; [b]<-- Ici, j'ai tenté d'insérer quelques variables comme $nom ou $frm['nom'] mais ça ne semble pas marcher :([/b]


		if ($error) {

				return $error;

		} else { # cool, we can continue

				if (!move_uploaded_file($the_file_tmp, $the_path . $the_new_file_name)) {

						//form("\n<b>Quelques choses ne fonctionnent pas : vérifier le chemin de la variable $path et les permissions du répertoire /upload (il doit être en CHMOD777</b>");

				} else {	

						chmod($the_path . $the_new_file_name, 0777);

						return $the_new_file_name;

				}

		}

}

La question est : comment récupérer le nom de ma variable $nom pour l'injecter dans cette fonction ?

Si quelqu'un a une idée..

Merciiii ;)

Share this post


: post
Share on other sites

Posted · Report post

c'est pas logique ton histoire.

tu peu avoir plusieurs images par noms de produit ... les images ne peuvent pas porter le meme nom

Share this post


: post
Share on other sites

Posted · Report post

Oui, c'est pour ça que je laisse la variable $mdp à la fin du nom.

Juste que je n'arrive pas à récuperer mon nom de produit ;)

Share this post


: post
Share on other sites

Posted · Report post

mais je vois pas ou est ton problème exactement ?

Share this post


: post
Share on other sites

Posted · Report post

ici : $the_new_file_name = $nom . "_" .$mdp.$extension;

Au moment de renommer le fichier donc. En fait pour essayer d'être plus clair, à la place de $nom j'aimerais récupérer la variable que l'on a entré dans la ligne "nom du produit" de la page administrer/produits.php. Normalement elle se retrouve bien sous la variable $nom.

Mais ça ne marche pas.

Exemple, je voudrais entrer un nouveau produit dans ma boutique.

Ce produit s'appelle par exemple voiture. Ce nom est donc stocké dans la variable $nom.

Et bien je voudrais réutiliser cette variable dans la fonction "upload" pour pouvoir renommer mes fichiers images (propre au produit en question donc) : voiture_01, voiture_02, voiture_03, etc...

Voilà ;)

Share this post


: post
Share on other sites

Posted · Report post

ici : $the_new_file_name = $nom . "_" .$mdp.$extension;

Au moment de renommer le fichier donc. En fait pour essayer d'être plus clair, à la place de $nom j'aimerais récupérer la variable que l'on a entré dans la ligne "nom du produit" de la page administrer/produits.php. Normalement elle se retrouve bien sous la variable $nom.

Mais ça ne marche pas.

Exemple, je voudrais entrer un nouveau produit dans ma boutique.

Ce produit s'appelle par exemple voiture. Ce nom est donc stocké dans la variable $nom.

Et bien je voudrais réutiliser cette variable dans la fonction "upload" pour pouvoir renommer mes fichiers images (propre au produit en question donc) : voiture_01, voiture_02, voiture_03, etc...

Voilà ;)

Je n'en vois pas l'intéret mais surtout comment voulez-vous gérer le fait que votre produit s'appellera sûrement 'Belle voiture décapotable rouge" plutôt que voiture1. Le système en place est justement fait pour résoudre ce genre de soucis même s'il n'est peut-être pas parfait. Autre avantage : pour piquer un visuel, il est plus facile de chercher 'voiture rouge' que '100707_145243_PEEL_TwTgkh.jpg'

Share this post


: post
Share on other sites

Posted · Report post

Je n'en vois pas l'intéret mais surtout comment voulez-vous gérer le fait que votre produit s'appellera sûrement 'Belle voiture décapotable rouge" plutôt que voiture1. Le système en place est justement fait pour résoudre ce genre de soucis même s'il n'est peut-être pas parfait. Autre avantage : pour piquer un visuel, il est plus facile de chercher 'voiture rouge' que '100707_145243_PEEL_TwTgkh.jpg'

Je ne comprends pas très bien.

Le système actuel renomme les fichiers de la sorte justement : "100707_145243_PEEL_TwTgkh.jpg". Ca ne pose pas de problème au recensement ? C'est dans cette optique que je voulais justement appeler mes images avec des noms français explicites.

Si vous pouvez m'eclaircir sur le sujet, ce ne serait pas de refus ^^

Share this post


: post
Share on other sites

Posted · Report post

je vais aussi faire ca pour le référencement ainsi que les alt ... je vous conseil de faire ceci :

dans functions.php

function upload($the_file, $nom) {

	/* le code de la function upload */

}
et dans administrer/produits.php
upload($_FILES['....'], $frm['nom'])

Share this post


: post
Share on other sites

Posted · Report post

bonjour,

avez vous reussis a nommer les photos avec les noms de produits?

merci

Share this post


: post
Share on other sites

Posted · Report post

Oui, ça fonctionne, merci Daxey (désolé, je n'avais pas testé avant ce matin, trop pris dans la configuration du moteur de recherche en ajax ;) ).

Comme dans mon cas, c'est une boutique de vins, je n'aurais besoin que d'une seule image par produit, donc le problème des images multiples ne se pose pas.

C'est chouette, j'aurai bien toutes mes images comme : monvin.jpg

Merci Daxey encore ;)

Share this post


: post
Share on other sites

Posted · Report post

Pouvez vous mettre le code final

merci

Share this post


: post
Share on other sites

Posted · Report post

Oui. Voilà, je précise que j'ai un peu changé le système et que maintenant, on peut uploader 4 images portant les noms : monimage_1.jpg, monimage_2.jpg, monimage_3.jpg et monimage_4.jpg.

Dans lib/fonctions/fonctions.php :

/*Fonction d'upload de fichiers */

function upload($the_file, $nom, $i) { //- on ajoute les variables du formulaire que l'on veut intégrer dans le nom de l'image -

global $the_path;

$the_file_tmp = $the_file['tmp_name'];

$the_file_name = $the_file['name'];

$error = validate_upload($the_file); // Teste la validité du document

$extension = substr($the_file_name, strrpos($the_file_name, "."));

$the_new_file_name = $nom . "_" .$i.$extension; // Le fichier uploadé sera de la forme nom_1.jpg, nom_2.jpg, etc.

if ($error) {

return $error;

} else { # cool, we can continue

if (!move_uploaded_file($the_file_tmp, $the_path . $the_new_file_name)) {

//form("\n<b>Quelques choses ne fonctionnent pas : vérifier le chemin de la variable $path et les permissions du répertoire /upload (il doit être en CHMOD777</b>");

} else {

chmod($the_path . $the_new_file_name, 0777);

return $the_new_file_name;

}

}

}

Dans administrer/produits.php :

if (empty($message_erreur)) {

if (!empty($_FILES['image1']['name'])) {$img1 = upload($_FILES['image1'], $frm['nom'], $i=1);}

if (!empty($_FILES['image2']['name'])) {$img2 = upload($_FILES['image2'], $frm['nom'], $i=2);}

if (!empty($_FILES['image3']['name'])) {$img3 = upload($_FILES['image3'], $frm['nom'], $i=3);}

if (!empty($_FILES['image4']['name'])) {$img4 = upload($_FILES['image4'], $frm['nom'], $i=4);}

if (!empty($_FILES['pdf']['name'])) {$pdf = upload($_FILES['pdf'], $frm['nom'], $i=0);}

et un peu plus loin, toujours dans administrer/produits.php :

if (!empty($_POST['image1'])) {$img1 = $_POST['image1'];

} else {

if (!empty($_FILES['image1']['name'])) {$img1 = upload($_FILES['image1'], $frm['nom'], $i=1);}

}

if (!empty($_REQUEST['image2'])) {$img2 = $_POST['image2'];

} else {

if (!empty($_FILES['image2']['name'])) {$img2 = upload($_FILES['image2'], $frm['nom'], $i=2);}

}

if (!empty($_REQUEST['image3'])) {$img3 = $_POST['image3'];

} else {

if (!empty($_FILES['image3']['name'])) {$img3 = upload($_FILES['image3'], $frm['nom'], $i=3);}

}

if (!empty($_REQUEST['image4'])) {$img4 = $_POST['image4'];

} else {

if (!empty($_FILES['image4']['name'])) {$img4 = upload($_FILES['image4'], $frm['nom'], $i=4);}

}

if (!empty($_REQUEST['pdf'])) {$pdf = $_POST['pdf'];

} else {

if (!empty($_FILES['pdf']['name'])) {$pdf= upload($_FILES['pdf'], $frm['nom'], $i=0);}

}

Share this post


: post
Share on other sites

Posted · Report post

alors la, c'est un peu inutile de mettre 3 arguments dans la function !

le $i ne sert a rien dans ce cas la.

Dans administrer/produits.php, autant faire :

upload($_FILES['image2'], $frm['nom'].'_1');

.......  upload($_FILES['image2'], $frm['nom'].'_2');.....

Share this post


: post
Share on other sites

Posted · Report post

Oui clair, merci à vous Daxey ;)

Share this post


: post
Share on other sites

Posted · Report post

pas de souci ;)

Share this post


: post
Share on other sites

Posted · Report post

Bonjour à tous.

Merci pour toutes ces informations.

Ce post convient presque totalement à mon application ; je souhaite uploader mes images en concervant leur nom d'origine (exemple.jpg à la place de 12345_PEEL_67890.jpg) mais sans les faire porter le même début de nom (pas de exemple_01.jpg, exemple_02.jpg). Je veux juste les uploader avec leur nom d'origine...

Le pb est que je ne maîtrise pas bcp le PHP (mais je sais faire des copier/coller).

Au risque de vous répéter, pourriez-vous SVP me communiquer les infos à modifier dans les fichiers de ma version 5.0 de PEEL PREMIUM pour y arriver ?!

J'ai cru comprendre qu'il me faut modifier les fichiers "administrer/produits.php" et "lib/fonctions/fonctions.php". Sur ce post, Riskbreaker avait un besoin un peu différent du mien donc je ne sais pas les infos que je dois reprendre de ce post...

Est ce que qqun pourrait me filer un petit coup de main en me précisant ce que je dois modifier ?

Merci d'avance

Share this post


: post
Share on other sites

Posted · Report post

 

Share this post


: post
Share on other sites

Posted · Report post

Yes !

Un grand merci à toi eric-lavoisier !!!

Tu ma sauvé ma vie... Je te dois une fière bretelle... :)

Pour te remercier, RDV dans la boutique www.bigbeach.fr ou sur www.assuronsnous.fr. Je te fais un prix sur des vêtements ou sur un contrat d'assurance...

Merci encore

Aurel

Share this post


: post
Share on other sites

Posted · Report post

 

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping