IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Conception] Images: Téléchargement, affichage, suppression - Comment Faire ?


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut [Conception] Images: Téléchargement, affichage, suppression - Comment Faire ?
    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.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut
    je souhaite que l'utilisateur puisse trouver un formulaire qui l'invite à télécharger au maximum 9 photos. (déjà compliqué à vérifier!)
    Tu crées un formulaire qui propose 9 champs d'uploads et chaque champ à un nom unique.

    Vérifier que la taille de la photo ne dépasse pas disons 500Ko.
    Code un exemple très simple : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $taille = filesize('00027.jpg');
    echo $taille; // Retourne la taille en octets
    ?>

    Code en rapport à ta demande : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $fichier = 'fichier.jpg';
    $taille = filesize($fichier);
    if($taille < 500000)
    	exit("$fichier est inférieure à la taille limite");
    else
    	exit("$fichier est supérieure à la taille limite");
    ?>

    Pour le reste, c'est vraiment facile. En cherchant un peu tu trouveras comment faire. La programmation est minimum dans un projet contrairement à la conception. Tout le succès d'un projet repose sur la conception.
    Business, Stratégie, Leadership
    Toujours à l'écoute du marché : Surtout en Suisse ! ;-)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut Merci pour cet élément de réponse
    Merci, mais pour moi le plus difficile est bien de trouver la réponse aux points 2, 3, 4, et 5 !!
    Comment faut-il articuler les codes? Dans le fichier contenant le formulaire ? Dans un fichier de traitement vers lequel pointe le formulaire ? etc...
    Tout est très flou.

    Puis concernant la limitation au téléchargement de 9 fichiers, ne mettre que 9 champs ne permet pas de limiter l'utilisateur car il lui suffirait de revenir sur la page de téléchargement plusieurs fois pour pouvoir rajouter encore 9 autres photos et me faire exploser l'espace nécessaire sur le serveur.
    Je pensais donc plutôt à la mise en place d'une requête SQL qui vérifie d'abord le nombre de photos déjà uploadé par l'utilisateur n° 32 par exemple et l'inviter soit à télécharger le nombre restant de photo qu'il dispose ou bien en supprimer certaines pour qu'il puisse les remplacer...

    Merci
    Mathieu.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut Merci d'enfoncer le clou
    En fait ton post confirme ce que j'ai dit. Tout repose sur la conception. Une bonne requête SQL vaut mieux que N lignes de code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    define("MAX", 9);
    $request = "SELECT idfiche FROM fiche_photos WHERE idfiche='$iduser'";
    $result = mysql_num_rows($request);
    $reste = MAX - $result;
    if($reste > 0){
        echo "Vous pouvez ajoutez $reste photos";
        /* Instructions */
    }
    else {
        echo "Vous avez déjà 9 photos d'uploadées";
        /* Instructions */ 
    }
    ?>
    ou alors tu as une dexième solution,
    c'est que quand tu affiche le formulaire, tu affiche dans chaque champ les photos déjà présentes dans la table, ce qui fait que même s'il revient en arrière, l'utilisateur ne pourra pas ajouter d'autres photos s'il en a déjà chargées le maximum.
    Business, Stratégie, Leadership
    Toujours à l'écoute du marché : Surtout en Suisse ! ;-)

Discussions similaires

  1. [Écran] Affichage alternatif comment faire
    Par sebdaix dans le forum Périphériques
    Réponses: 3
    Dernier message: 07/09/2010, 11h53
  2. Réponses: 1
    Dernier message: 17/04/2009, 17h20
  3. Réponses: 8
    Dernier message: 16/07/2008, 20h42
  4. Image et texte, présentation, comment faire ?
    Par Sunsawe dans le forum Mise en forme
    Réponses: 5
    Dernier message: 31/08/2007, 12h34
  5. Affichage Hashtable, comment faire ?
    Par pontus21 dans le forum Applets
    Réponses: 2
    Dernier message: 14/01/2007, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo