mathieu7497
Messages postés7Date d'inscriptionsamedi 9 décembre 2006StatutMembreDernière intervention14 mars 2008
-
9 déc. 2006 à 14:17
vilhjalms
Messages postés591Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention16 juillet 2009
-
9 déc. 2006 à 22:30
A l'aide ! Je ne comprends rien aux mécanismes de téléchargement de photos !! Je trouve plein de portions de codes pour faire ceci ou cela mais aucune méthodo complète pour télécharger, afficher, modifier, supprimer, etc des photos.
Ce que je voudrais faire est assez simple mais compliqué à la fois? Je serais très reconnaissant à tous ceux qui pourraient m?aider.
Voici le problème :
J'utilise la base de données : vinobdd contenant les tables fiche et fiche_photos
Table : fiche<?XML:NAMESPACE PREFIX = O /??>
- Contenant les champs : idfiche (clé primaire) ; identifiant ; pass ; nom ; ?
Table : fiche_photos
- Contenant les champs : id (clé primaire) ; idfiche ; titre ; nom_photo ; largeur ; hauteur .
Les utilisateurs de mon site peuvent s'identifier et accéder à leur compte privé. J'identifie chaque utilisateur par un identifiant nommé « idfiche » qui est passé en variable de session de page en page.
Ainsi, sachant la variable « idfiche » de l'utilisateur qui est connecté à son compte, je peux connaitre toute les photos ayant pour clé primaire « id » que l'utilisateur « idfiche » a téléchargé.
Mon problème est de permettre à l'utilisateur de télécharger ses photos et de traiter le fichier correctement derrière.
(Je fais pour l'instant tout en version locale avec easyphp d'où le localhost)
Problème1 :
Depuis le fichier http://localhost/vino/vin/insertphotos.php je souhaite que l'utilisateur puisse trouver un formulaire qui l'invite à télécharger autant de photos qu'il veut et attribuer un titre à chacune d'elles. (je me pose pas encore la question de limiter l'espace total...)
Au niveau traitement il faudra que tout ceci se passe quand il clic sur envoyer :
1-
Vérifier que la taille de la photo ne dépasse pas disons 500Ko. J'ai trouvé peut-être un bout de réponse :
Insérer cette ligne : n" name="MAX_FILE_SIZE" value="500000" /> Avant le champ de téléchargement de fichier du formulaire en question.
2- Vérifier que la photo est réellement une photo. (j'ai lu que l'on pouvait faire télécharger des scripts pas sympas au format jpg?)
3-
Que la photo soit renommée de manière unique. J'ai pour cela mis la main sur un code qui à l'air bien :<?php $unique_id md5(uniqid(time())); $filename $unique_id.'_'.$filename; ?>
5-
Que la table fiche_photos soit actualisée en entrant le « idfiche » de l'utilisateur en question, le titre de la photo, son nouveau nom unique, sa largeur et sa hauteur. Le paramètre « id » est auto incrémenté.
6-
Sans vouloir paraître pointilleux, il serait bien que l'utilisateur puisse suivre l'état d'avancement du téléchargement? (C pas le point le plus important mais je pense que ça évite qu'il clic plusieurs fois sur le bouton ENVOYER.)
Problème2 :
A la fin du processus de téléchargement, l'utilisateur doit être renvoyé vers une page où il peut voir les photos qu'il a téléchargé et en supprimer ou en retitrer, s'il le souhaite. (et même en rajouter d'autres ? peut-on tout mettre sur la même page inserphotos.php ? )
Problème3 (N'est pas le plus essentiel mais j'imagine que si vous avez la réponse à tout ce qui est au dessus vous aurez la réponse à ça !):
Les internautes peuvent ensuite aller sur une page vousconnaitre.php afin de regarder les photos d'un utilisateur en particulier (toujours identifié par l' « idfiche ».)
J'aimerais bien que les photos s'affichent disons dans un « cadre », ce cadre serait coupé en deux.
La partie gauche contiendrait toute les photos en versions thumbnails. Lorsque l'internaute clic sur un thumbnail, la photo en taille agrandie s'affiche dans la partie de droite du cadre ! Est-ce possible ? C pas mal de CSS non ?
Enfin, comment faire pour que les photos, de gauche comme de droite soit dimensionné toute à peut-prêt harmonieusement sans être distordu (le côté le plus grand subi la taille limite imposée) ?
Je remercie par avance tous ceux qui se pencheront sur le problème, tous ceux qui resterons perplexe mais qui ont lu ce billet et enfin toute la communauté des développeurs de manière large, débutants comme moi et experts généreux en particulier.
Merci d'être assez pédagogique dans la réponse? S'il faut créer des fichiers php de traitement, merci de bien vouloir l'indiquer.