Galerie photo en php

Fermé
yoan - 5 août 2010 à 11:27
Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 - 5 août 2010 à 15:25
Bonjour à toutes et à tous.

J'ouvre un post car j'aimerais créer, pour besoins personnels, un site avec galeries photos, dans l'esprit de https://www.isshophoto.com/home
Quelque chose d'assez simple, avec des catégories et quand on clique sur une catégorie, une liste de vignettes, chacune des vignette représentera une série. Quand on clique sur une vignette, on atterrit sur une page avec toutes les photos de la série.

Étant spécialiste du web-design, et ayant peu de connaissances en php, je viens vers vous en sespèrant que vous puissiez me renseigner.

Inutile de me dire que des posts existent déjà, je les ai tous faits.

J'aimerais que tout ceci se fasse par un back-office, pour avoir une gestion simplifiée.
Seulement, je bloque sur le code php pour l'ajout de plusieurs images.
J'ai vu un script, très bien fait, du site du zero, pour stocker les images, mais celui ne permet d'uploader qu'une seule photo.

Avez-vous une idée ?

Merci d'avance à toutes celles et ceux qui tenteront de m'aider.
A voir également:

1 réponse

Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
5 août 2010 à 15:25
Bonjour,

concernant le code te permettant d'uploader plusieurs fichiers, tu peux le faire avec un formulaire généré dynamiquement en javascript. Pour cela je peux te fournir la fonction suivante qui permet d'ajouter dynamiquement des inputs de type "file" dans ton formulaire :

var cmpt = 0;
function add(){
	inp = document.createElement("input");
	inp.id="file_"+cmpt;
	inp.type = "file";
	inp.setAttribute('maxlength', 2000000);
	inp.setAttribute('accept', 'image/*');
	lediv = document.createElement("div");
	lediv.id = "fichier"+cmpt;
	lediv.style.borderTop='1px solid #BEC3CC';
	lediv.style.marginTop='5px';
	lediv.style.paddingTop='5px';
	check = document.createElement("input");
	check.type = "checkbox";
	check.id = "checkbox_file_"+cmpt;
	check.name = cmpt;
	lab = document.createElement("label");
	lab.appendChild(document.createTextNode("Enlever"));
	lediv.appendChild(inp);
	lediv.appendChild(check);
	lediv.appendChild(lab);
	span_legende = document.createElement("span");
	span_legende.innerHTML="Légende : ";
	legende = document.createElement("input");
	legende.type="text" ;
	legende.style.width='250px';
	legende.name="legende[]" ;
	lediv.innerHTML+='<br/>';
	lediv.appendChild(span_legende) ;
	lediv.appendChild(legende) ;
	document.getElementById("fichiers").appendChild(lediv);
	
	document.getElementById("file_"+cmpt).name = "photos[]" ;
	
	document.getElementById('checkbox_file_'+cmpt).onclick = function(){
	   elt = document.getElementById("fichier"+this.name);
	   elt.parentNode.removeChild(elt);
	};
	
	cmpt++;
 }


avec le code html :
<div id="fichiers" align="center">
	<input id="bouton_fichier" type='button' onclick='add()' value='Ajouter une photo' />
</div>



Tout cela dans un formulaire. (sinon les inputs ne serviront à rien ^^)
Cela permet de récupérer un tableau $_FILES['photos'] (dans ton php de traitement) contenant plein de fichiers ! :)

Ensuite il faut traiter les fichiers et les enregistrer. Mais cela se fait de la même façon qu'avec un seul fichier (sauf que la il faut parcourir le tableau, mais je suppose que de ce côté la c'est bon).

NB : ne pas oublier le 'ENCTYPE="multipart/form-data"' dans le form, sinon les fichiers ne sont pas uploader :
<form ENCTYPE="multipart/form-data" method="POST" action="mon_traitement.php">



Si tu as des questions n'hésite pas.
0