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 :

[Upload] problème incompréhensible


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 69
    Points
    69
    Par défaut [Upload] problème incompréhensible
    Bonjour,

    je tente de faire des uploads mais hélas sans succès

    j'ai utilisé pour faire mes tests le code trouvé sur ce site, le problème c'est que j'ai systématiquement le message "Echec de l'upload !".

    pour info le dossier et les sous dossiers qui devront contenir les fichiers ont pour chmod 777

    le serveur est chez 1and1.fr

    je n'arrive pas à trouver de solution je n'ai comme piste que Echec de l'upload ce qui est mince.

    Merci pour votre aide

    Code : 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
    40
    41
    42
     
    <?php
    $dossier = 'fichiers_internes/';
    $sous_dossier = $_POST["AJ_Type_Doc"];
    $sous_dossier .= '/';
    $fichier = basename($_FILES['AJ_Upload']['name']);
    $taille_maxi = 5000000;
    $taille = filesize($_FILES['AJ_Upload']['tmp_name']);
    $extensions = array('.txt', '.doc', '.xls', '.pdf');
    $extension = strrchr($_FILES['AJ_Upload']['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['AJ_Upload']['tmp_name'], $dossier .$sous_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;
    }
    ?>

  2. #2
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 44
    Points : 55
    Points
    55
    Par défaut
    Comme vous n'avaez pas transmis le code du formulire, Vérifiez l'attribut enctype de votre formulaire. Il doit ressembler à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form enctype="multipart/form-data" ...>

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    oui le formulaire est bien sous cette forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form enctype="multipart/form-data" ...>

  4. #4
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 69
    Points
    69
    Par défaut
    je viens de tester en local l'upload fonctionne sans problème. Est-ce que cela veut dire que mon hébergeur n'accepte pas les uploads ? ou dois-je changer un paramètre pour que cela fonctionne ?

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    j'ai réussi à touver cette erreur avez vous une idée ?

    Warning: move_uploaded_file(fichiers_internes/ouvrage/classification.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 132
    Points
    132
    Par défaut
    Bonjour,

    Il y a chmod 777 aussi pour le répertoire temporaire d'upload ?
    Il faudrait vérifier si il y a quelque chose dedans ...

  7. #7
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 69
    Points
    69
    Par défaut
    bonjour

    justement je viens d'ajouter à la racine du site un répertoir "tmp" avec pour CHMOD 777, hélas toujours le même problème. Je tourne en rond avec ce problème !!!

  8. #8
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    ça ressemble à une erreur dans le chemin indiqué pour le fichier
    Citation Envoyé par xdoreau
    je viens d'ajouter à la racine du site un répertoir "tmp" avec pour CHMOD 777
    ok, mais est-ce que ton php.ini est bien configuré pour utiliser ce répertoire lors de l'upload ? (Voir l'option : upload_tmp_dir)
    Essayes aussi la fonction is_uploaded_file() afin de savoir si le fichier a bien été uploadé (dans ce cas le problème est lors de son déplacement avec move_uploaded_file())

  9. #9
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 69
    Points
    69
    Par défaut
    bonjour,

    je viens de voir de info.php que upload_tmp_dir a pour valeur ceci "no value". Si je ne me trompe pas il n'y a donc pas de dossier temporaire (tmp) ai-je un moyen de changer cela ? je pense que mon hébergeur 1and1 ne me donnera pas l'accès au fichier php.ini, puis-je utiliser upload_tmp_dir et si oui comment ?

    merci

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 132
    Points
    132
    Par défaut
    Ah, léger problème. "no value" signifie que l'hébergeur ne veut pas d'upload (ce n'est pas la valeur par défaut). Il faudrait vérifier file_uploads (on/off) avec phpinfo() ...
    edit : pour l'hébergeur, c'est une option de base à 0,99/mois, un serveur privé à 9,99/mois ... ?

  11. #11
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 69
    Points
    69
    Par défaut
    Bonjour

    file_upload est sur "on".

    Je pense aussi que c'est une volonté da la part de 1and1 je vais voir avec eux ce que je peux faire pour régelr ce problème

  12. #12
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    après consultation de 1and1, ils me disent de faire un fichier "php.ini" avec juste les valeurs que je veux redéfinir et de la placer à la racine du site. C'est bien ! oui mais voilà un gros doute me viens !!!
    Que mettre comme valeur dans upload_tmp_dir = "..." ??? dois-je juste indiquer mon dossier temporaire sous cette dorme "/tmp" ou autrement ?

    si quelqu'un à une réponse je suis preneur, en attendant je vais faire un test.

    Merci

  13. #13
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2005
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2005
    Messages : 75
    Points : 69
    Points
    69
    Par défaut
    bonjour c'est encore moi,

    pourriez vous me dire si ce script contient une ou des erreurs ??

    je vous demande cela car cette histoire me rend dingue et je veux être certain que ce script fonctionne

    merci pour votre aide

    Code : 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
    40
    41
    42
     
    error_reporting (E_ERROR | E_WARNING | E_PARSE);
    $base ='http://www.monsite.fr/mondossier/';
    $dossier = 'fichiers_internes/';
    $sous_dossier = $_POST['AJ_Type_Doc'];
    $sous_dossier .= '/';
    $fichier = basename($_FILES['AJ_Upload']['name']);
    $taille_maxi = 5000000;
    $taille = filesize($_FILES['AJ_Upload']['tmp_name']);
    $extensions = array('.txt', '.doc', '.xls', '.pdf');
    $extension = strrchr($_FILES['AJ_Upload']['name'], '.'); 
    $LIEN = $base . $dossier . $sous_dossier . $fichier;
    //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 txt, doc, xls, pdf';
    }
    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['AJ_Upload']['tmp_name'], $dossier.$sous_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;
    }

Discussions similaires

  1. [Upload] Problème avec Force download
    Par bannik dans le forum Langage
    Réponses: 8
    Dernier message: 30/12/2005, 12h27
  2. [Upload] Problème pour gestion d'erreur avec class
    Par allserv dans le forum Langage
    Réponses: 2
    Dernier message: 27/12/2005, 13h00
  3. Problème incompréhensible! Fichier + liste
    Par djsbens dans le forum C
    Réponses: 2
    Dernier message: 07/12/2005, 00h30
  4. Problème incompréhensible
    Par bugalood dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2005, 11h49
  5. [Upload] Problème d'upload :)
    Par manu_du_31 dans le forum Langage
    Réponses: 3
    Dernier message: 14/11/2004, 15h56

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