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

Langage PHP Discussion :

Problème de fichier de destination lors d'upload


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut Problème de fichier de destination lors d'upload
    Bonjour a tous

    J'aimerais tester en local ce code suivant (pris dans un tutoriel sur l'upload des fichiers):
    J'ai donc créer dans mon www un repertoire nommé ledossier

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
    $dossier = '../ledossier/';
    $fichier = basename($_FILES['avatar']['name']);
    $taille_maxi = 100000;
    $taille = filesize($_FILES['avatar']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['avatar']['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['avatar']['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;
    }
    ?>

    Lors de l’exécution du code j'ai toujours
    Echec de l\'upload !
    Quelqu'un peut m'aider ?

    Merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Fais-tu afficher les erreurs php ?
    As-tu les droits suffisants pour écrire dans ce dossier ?
    As-tu cette erreur quelque soit la taille des fichiers, même pour un fichier < 1Mo ?

    Je ne vois pas d'erreur évidente dans ton code donc pas impossible que cela soit une limitation serveur...

    Après si ton objectif est simplement d'uploader des fichiers tu peux utiliser directement ce module d'upload.
    Cela pourrait t'éviter beaucoup de travail car en plus du retour d'informations en temps réel proposé, il y a aussi des exemples fonctionnels pour le traitement des images, l'optimisation pour le web, les redimensionnements et/ou recadrages (crop). Par ailleurs le module surpasse nativement les limitations serveur concernant la taille et le nombre des fichiers (ce qui n'empêche pas de fixer des limites, mais on n'est plus dépendant de celles fixées par le serveur).

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    As-tu vérifier si le chemin du dossier est correct et si tu as les droits en écriture?

    Autre chose, ces deux lignes sont fausses:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $fichier = strtr($fichier, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    strtr ne gèrent pas les caractères multibytes (à la limite on pourrait l'utiliser si on lui passait un tableau associatif en 2e paramètre), et pour que preg_replace le fasse, il faut lui ajouter le modificateur u (afin qu'il lise la chaîne source comme de l'UTF8 et non pas octect par octet). iconv peut être une solution, ou bien mb_convert_encoding:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setlocale(LC_ALL, 'fr_FR.UTF-8');
    $fichier = iconv('UTF-8', 'ASCII//TRANSLIT', $fichier);
    $fichier = preg_replace('/[^.a-z0-9]+/iu', '-', $fichier);
    NB: si le nom de fichier n'est pas encodé en UTF8, le mieux que tu puisses faire est alors de te livrer à une pseudo détection d'encodage avec mb_detect_encoding en renseignant des encodages potentiels avec mb_detect_order.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  4. #4
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    As-tu vérifier si le chemin du dossier est correct et si tu as les droits en écriture?
    En faite je suis un peu novice dans tous ce qui est développement web je suis sous windows7 avec wampserver


    Citation Envoyé par CosmoKnacki Voir le message
    Autre chose, ces deux lignes sont fausses:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $fichier = strtr($fichier, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    j'ai remplacé avec le code suivant :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $fichier = iconv('UTF-8', 'ASCII//TRANSLIT', $fichier);
    $fichier = preg_replace('/[^.a-z0-9]+/iu', '-', $fichier);

    Mais j'ai toujours la même erreur !

    NB: si le nom de fichier n'est pas encodé en UTF8, le mieux que tu puisses faire est alors de te livrer à une pseudo détection d'encodage avec mb_detect_encoding en renseignant des encodages potentiels avec mb_detect_order.
    je pense que la il me faut un tuto pas à pas ! je pense que je vais voir du coté du lien proposé par ABCIWEB. En attendant je cherche toujours.

    Merci

Discussions similaires

  1. Problème lors d'upload de gros fichiers
    Par Haomaru_91 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 22/05/2007, 17h12
  2. [EasyPHP] Upload d'image sous EasyPHP en local : fichier de destination
    Par camzo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 28/12/2006, 12h32
  3. Réponses: 15
    Dernier message: 26/12/2006, 16h27
  4. [Upload] Problème affichage fichier généré par script
    Par mathieugamin dans le forum Langage
    Réponses: 7
    Dernier message: 22/11/2006, 12h18
  5. [Upload] Problème ouverture fichier joint
    Par vincedjs dans le forum Langage
    Réponses: 4
    Dernier message: 27/03/2006, 11h24

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