Probleme upload image php

Résolu
Bonjour,

Je veux créer un formulaire d'upload d'image chez free mais j'obtiens l'erreur suivante lorsque j'utilise la fonction filesize :

Warning: filesize() [function.filesize]: stat failed for logo2.jpg in /mnt/153/sda/5/3/morecraft/espace_membre.php on line 135

J'ai fais des recherches et il se trouve que upload_tmp_dir dans php.ini n'a pas de valeur (alors qu'il doit être, apparement à 777).

Avez-vous une solution en sachant que je n'ai pas accès au php.ini ?

Merci d'avance pour votre réponse.

4 réponses

  1. Merci beaucoup ça marche :)
    0
    1. il ne faut pas utiliser filesize c'est normal de ne pas avoir les droits à ce moment.

      remplace

      $taille = filesize ($_FILES['skin']['tmp_name']);

      par

      $taille =$_FILES['skin']['size'];
      0
      1. Bonjour,

        Voilà le code du formulaire :


        <form method ="POST" action ="uplaod.php" enctype ="multipart/form-data">
        <!-- On limite le fichier à 100Ko -->
        <input type ="hidden" name ="MAX_FILE_SIZE" value ="100000">
        Fichier : <input type ="file" name ="skin">
        <input type ="submit" name ="envoyer" value ="Envoyer le fichier">
        </form >

        Et la page de traitement :


        <?php
        $dossier = './images/avatar/'; //repertoire de destination
        $fichier = basename ($_FILES['skin']['name']);
        $taille_maxi = 100000;
        $taille = filesize ($_FILES['skin']['tmp_name']); // ici le filesize
        $extensions = array ('.png', '.gif', '.jpg', '.jpeg', '.bmp'); //la liste des extensions utilisable
        $extension = strrchr ($_FILES['skin']['name'], '.');

        //Début des vérifications de sécurité...
        if (!in_array ($extension, $extensions)) //Si l'extension n'est pas dans le tableau
        {
        $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
        }
        if ($taille>$taille_maxi)
        {
        $erreur = 'Le fichier est trop gros...';
        }
        if (!isset ($erreur)) //S'il n'y a pas d'erreur, on upload
        {

        //On formate le nom du fichier ici...
        $fichier = strtr ($fichier,
        'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
        'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
        $fichier = preg_replace ('/([^.a-z0-9]+)/i', '-', $fichier);
        if (move_uploaded_file ($_FILES['skin']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
        {
        echo 'Upload effectué avec succès !';
        }
        else //Sinon (la fonction renvoie FALSE).
        {
        echo 'Echec de l\'upload !';
        }
        }
        else
        {
        echo $erreur;
        }

        ?>

        Malheureusement, je suis en vacance et je ne peux pas tester le code en local.

        Pouvez-vous m'expliquer ce que sont les droits d'accès à un dossier svp ?
        0
        1. Bonsoir,

          le morceau de code concerné serait le bienvenue.
          est ce que ce code fonctionne en local ?

          les droits maximum à attribuer à un dossier sont 755 et ne devrait jamais être 777.
          0