Renommer les images

19 messages dans ce sujet

Posté(e) · Signaler ce message

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 ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

c'est pas logique ton histoire.

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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 ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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à ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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'

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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 ^^

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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'])

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

bonjour,

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

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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 ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Pouvez vous mettre le code final

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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);}

}

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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');.....

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Oui clair, merci à vous Daxey ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

pas de souci ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping