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 à la base mais compliqué à mettre en oeuvre pour un débutant comme moi. Je serais très reconnaissant à tous ceux qui pourraient m'aider.
Voici le problème :
J'utilise la base de données MySQL nommée "vinobdd" contenant les tables "fiche" et "fiche_photos".
Table : "fiche" : 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 pages en pages.
Pour afficher les photos j'ai une requête SQL qui parcous la table fiche_photos à la recherche de l'identifiant "idfiche" de l'utilisateur connecté. (L'affichage n'est pas le problème...c'est tout le reste. )
Mon problème est de permettre à l'utilisateur identifié de télécharger ses photos et de traiter le fichier correctement derrière.
Problème1 :
Depuis mon fichier insertphotos.php je souhaite que l'utilisateur puisse trouver un formulaire qui l'invite à télécharger au maximum 9 photos. (déjà compliqué à vérifier!)
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 : <input type="hidden" 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; ?>
4- Que la photo soit stockée dans le répertoire http://localhost/vino/img/fiches/
5- Que la table "fiche_photos" soit actualisée en entrant le « idfiche » de l'utilisateur en question, le titre de la photo tapé par l'utilisateur dans le formulaire, le nom du fichier, sa largeur et sa hauteur.
Le paramètre « id » de la table 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 et génère éventuellement des erreurs.
7- A la fin du processus l'utilisateur est renvoyé vers le fichier mesphotos.php qui affiche les photos.
A quoi doit resembler mon fichier insertphotos.php pour faire tout ça?
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.
Cordialement,
Mathieu.
Partager