Mon script crée mes fichiers dans un endroit inattendu

angelimad Messages postés 44 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 9 septembre 2009 - 8 sept. 2009 à 18:38
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 - 9 sept. 2009 à 08:32
bonjour tout le monde.

mon problème c'est que j'ai un site php hébergé sur un serveur Linux.
mon script upload le fichier via le formulaire du client dans un dossier dans le serveur.
voila la fonction qui upload le fichier, il a les paramètre suivants: le répertoire de destination, le poids de l image, le lien que je vais insérer dans la base de données, et finalement l'erreur s'il y a un problème.
voila l'appel de la fonction :
upload_image ("logo\", 512000, $_FILES, $lien, $erreur) 

et voila la définition de la fonction :
function upload_image ($rep, $poid_m, $tab_image, &$lien, &$erreur)
{
      //$poids_max 512000; // Poids max de l'image en octets (1Ko 1024 octets)
      $poids_max $poid_m; // Poids max de l'image en octets (1Ko 1024 octets)
      $repertoire = $rep; // Repertoire d'upload
      //$repertoire = "logo enseignes\"; // Repertoire d'upload

      if (isset($tab_image['logo']))
      {
        // On vérifit le type du fichier
        if ($tab_image['logo']['type'] != 'image/png' && $tab_image['logo']['type'] != 'image/jpeg' && $tab_image['logo']['type'] != 'image/jpg' && $tab_image['logo']['type'] != 'image/gif')
         {
             $erreur = 'Erreur, Le fichier doit être au format *.jpeg, *.gif ou *.png .';
         }
      }
      // On vérifit le poids de l'image
      if ($tab_image['logo']['size'] > $poids_max)
      {
        $erreur = 'Erreur, L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
      }
      // On vérifit si le répertoire d'upload existe
      if(file_exists($repertoire.$tab_image['logo']['name']))
      {
        $erreur = 'Erreur, le nom du fichier existe déja.';
      }
      if($erreur)
      {
        return false;
      }
      else
      {
        // On upload le fichier sur le serveur.
        if (move_uploaded_file($tab_image['logo']['tmp_name'], $repertoire.$tab_image['logo']['name']))
        {
          $lien = $repertoire."/".$tab_image['logo']['name'] ;
        }
        else
        {
          $erreur = 'L\'image n\'a pas pu être uploadée sur le serveur.';
          return false;
        }
      }
   return true;
}

probleme :
supposons que j'ai indiquer le dossier "logo", pour insérer l'image, ce script insère l'image dans ce répertoire quand j'utilise un serveur local, comme easyphp, mais pour mon hébergeur distant, l'image est insérer dans le dossier courant, pas "logo", en plus l'image prend le nom "logo\image.jpg". je trouve sa bizarre. pourquoi sa fonctionne bien avec mon serveur local.
un autre petit problème, c'est que la suppression de ces fichier est interdite au niveau du serveur d'hébergement.

3 réponses

JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
8 sept. 2009 à 22:42
Normal...
tu dois utiliser comme dossier "logo/" dans ton exemple... En effet, les dossiers dans une arborsence sont séparés par des / sou slinux alors qu'ils le sont par des \ sous windows...

J'espère avoir été a peu près clair ;-)
angelimad Messages postés 44 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 9 septembre 2009
9 sept. 2009 à 01:37
justement, j'ai pas penser a sa vraiment, sa fonctionne parfaitement, merci
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
9 sept. 2009 à 08:32
Tu peux cliquer sur Réponse acceptée ça peut aider d'autres personnes.
S.
Rejoignez-nous