Upload d'image en php ok mais ne s'affiche ?

Résolu
stefart Messages postés 33 Statut Membre -  
stefart Messages postés 33 Statut Membre -
Bonjour,

j'ai un probleme sur mon formulaire php qui ajout (par upload) u fichier image dans un table
lorsque je valide l'image est bien enregistrer dans la DB ainsi que dans le dossier
mais impossible de l'afficher en ligne comme si elle n'existai pas !
alors qui ci je la recup (via le FTP) elle est bien là !
le plus etrange c'est qui si j'upload une image (via FTP) la j'arrive ien a l'afficher sur ma page web
donc y'a pas d'erreur de chemin vers l'image

je suis dubitatif face a ce probleme !
alors si y'a un pro du php qui a une idée je prend !!!!
merci
--
--
Configuration: Windows XP
Firefox 2.0.0.12

2 réponses

  1. Utilisateur anonyme
     
    Attention ^^ première fois que j'aide quelqu'un ^^^^ lool

    Je sais pas ce que tu utilise comme code, mais il doit y avoir une(des) erreu(s)

    Perso j'utilise celui là : https://www.sendspace.com/file/o34a29
    Dézip le fichier et tu met sur ton serveur le fichier tel quel
    Après bien sûr je te laisse porter les dernières personnalisations

    Xywez
    0
    1. stefart Messages postés 33 Statut Membre
       
      ok merci beaucoup

      J'ai regardé le code de la source que tu me donne pas mal

      Pour info voici le code que j'utilise :

      <?php
      // connexion à la BD
      include('config.php');
      
      // définition de l'espace destiné à recevoir les fichiers
      $repository="/kunden/homepages/0/d147037573/htdocs/le-bazar/img/";
      
      // si un fichier maphoto a bien été transféré
      if (is_uploaded_file($_FILES["maphoto"]["tmp_name"])) {
      // recupération de l'extension du fichier
      // autrement dit tout ce qu'il y a après le dernier point (inclus)
      $nomPhoto = $_FILES["maphoto"]["name"];
      $extension = substr($nomPhoto, strrpos($nomPhoto, "."));
      // Contrôle de l'extension du fichier
      if (eregi("^ph", $extension)) {
      die("Les fichiers en .ph* ne sont pas autorisés.");
      }
      $cheminPhoto = $login . "_photo" . $extension;
      rename($_FILES["maphoto"]["tmp_name"], $repository.$cheminPhoto);
      }
      if (is_uploaded_file($_FILES["monicone"]["tmp_name"])) {
      // recupération de l'extension du fichier
      // autrement dit tout ce qu'il y a après le dernier point (inclus)
      $monIcone = $_FILES["monicone"]["name"];
      $extension = substr($monIcone, strrpos($monIcone,"."));
      // Contrôle de l'extension du fichier
      if (eregi("^ph", $extension)) {
      die("Les fichiers en .ph* ne sont pas autorisés.");
      }
      $cheminIcone = $login . "_icone" . $extension;
      rename($_FILES["monicone"]["tmp_name"], $repository.$cheminIcone);
      }
      
      // Requete de stockage en BD avec MySQL
      mysql_query("INSERT INTO annonces (titre,img,codebarre) VALUES ('" . addslashes($login). "','" . addslashes($cheminPhoto) . "','" . addslashes($cheminIcone) . "')");
      ?>


      et donc je sais pas ou est mon erreurs ?
      si tu a une idée merci
      --
      0
    2. stefart Messages postés 33 Statut Membre
       
      salut !

      bon finalement apres pas mal de recherche le probleme du script
      est que l'image un foi uploadé ne porte que les droits d'acces chmod 600
      alors que pour etres lu pas tous il devarai au moins etres en chmod 644 !!!

      donc a present je cherche un p'tit bout de code a mettre pour lui donner les droits d'acces suffisant

      voila ce que j'ai ajouté :

      // si un fichier maphoto a bien été transféré
          if (is_uploaded_file($_FILES["maphoto"]["tmp_name"])) {
              // recupération de l'extension du fichier
              // autrement dit tout ce qu'il y a après le dernier point (inclus)
              $nomPhoto = $_FILES["maphoto"]["name"];
              $extension = substr($nomPhoto, strrpos($nomPhoto, "."));
              // Contrôle de l'extension du fichier
              if (eregi("^ph", $extension)) {
                  die("Les fichiers en .ph* ne sont pas autorisés.");
              }
              $cheminPhoto = $login . "_photo" . $extension;
              rename($_FILES["maphoto"]["tmp_name"], $repository.$cheminPhoto);
      	}
      
          chmod ($cheminPhoto, 0644);
      
      // Requete de stockage en BD avec MySQL
      mysql_query("INSERT INTO annonces (titre,img,codebarre) VALUES ('" . addslashes($login). "','" . addslashes($cheminPhoto) . "','" . addslashes($cheminIcone) . "')");
      ?>
      



      mais ca ne marche pas !

      pourquoi donc ??????? je me demande bien !
      y'a un pro du PHP qui a une idée
      !!!!! merci !!!!!!
      0
      1. kuroyume > stefart Messages postés 33 Statut Membre
         
        Salut!
        Je débute dans le php alors j'vais peut être dire une connerie...
        Sur le FTP, as tu modifié les paramètres CHMOD du dossier dans lequel arrivent tes images uploadées?
        Ce n'est pas dans ton script que tu dois faire cette modification.
        0
  2. stefart Messages postés 33 Statut Membre
     
    merci mais j'ai trouver depuis l'erreur

    j'ai remplacer :

            $cheminPhoto = $login . "_photo" . $extension;
            rename($_FILES["maphoto"]["tmp_name"], $repository.$cheminPhoto);
    	}
    


    par ce code :

            $cheminPhoto = $login . "_photo" . $extension;
            move_uploaded_file($_FILES["maphoto"]["tmp_name"], $repository.$cheminPhoto);
    	}
    


    et là ça marche.
    Encore merci
    0