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 :

fopen: failed to open stream


Sujet :

Langage PHP

  1. #1
    Membre averti
    Avatar de omar344
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2007
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 287
    Points : 301
    Points
    301
    Par défaut fopen: failed to open stream
    Salut je suis en train de réaliser un formulaire de contact avec pièce jointe, je suis arrivé à la construction du rattachement , et je suis face à une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $attach = $_FILES['piece']['tmp_name'];
    $file=fopen($attach,'r');
    l'erreur est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Warning: fopen(D:\wamp\tmp\phpE01B.tmp): failed to open stream: No such file or directory in D:\wamp\www\abouchan\formulaire.php on line 166
    ????

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Est tu certain que les fichiers temporaires comme c'est le cas ici sont placés très exactement dans : D:\wamp\tmp\fichiersTemporaires.tmp ?

    Sans garanti, essai comme ceci pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $file=fopen($attach,'rb');
    Si tu ajoute une condition comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    file_exists($attach) {
        // Le fichier existe bien
        $file = fopen($attach,'rb');
    }
    else {
        exit('Le fichier n\'existe pas, ou le chemin vers le fichier est incorrecte');
    }
    Qu'est-ce que ça donne ?

  3. #3
    Membre averti
    Avatar de omar344
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2007
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 287
    Points : 301
    Points
    301
    Par défaut
    Comment savoir le dossier où sont placés les fichiers temporaires, et comment le modifier?
    Quand j'utilise la boucle ça donne "fichier n'existe pas ou chemin incorrect"

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par omar344
    Comment savoir le dossier où sont placés les fichiers temporaires, et comment le modifier?
    Et bien déjà parcourt ton disque D, et regarde s'il y a un dossier "wamp", et dans wamp un dossier "tmp".
    Puis vois du coté du php.ini (ou appeler la fonction phpinfo() dans une page php ) et rechercher la valeur correspondante (le chemin) à la directive upload_tmp_dir, c'est théoriquement là où sont déposés les fichiers temporaires uploadés.


    Quand j'utilise la boucle ça donne "fichier n'existe pas ou chemin incorrect"
    C'est bien ça qui m'intrigue, c'est que le fichier temporaire n'existe pas ou n'existe plus.
    Ceci dit, au lieu d'exploiter la fonction file_exists() j'aurais dû mettre is_uploaded_file() dans la condition.


    Faudrait peut être voir plus en profondeur comment tu procède pour l'upload de ce fichier.

    Faudrait peut être utiliser la fonction move_upload_file() pour déposer le fichier dans un répertoire autre que "wamp/tmp", dans ton espace où se trouve ton application par exemple, histoire d'éliminer une erreur liée à des droits qui seraient limités sur ces fichiers temporaire.

    Une fois le fichier déposé dans ton propre dossier, exploiter celui-ci (son chemin) pour l'indiquer comme pièce jointe au mail.
    Une fois le mail correctement envoyé, tu pourras alors le détruire si tu en a pas d'autres usage.

  5. #5
    Membre averti
    Avatar de omar344
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2007
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 287
    Points : 301
    Points
    301
    Par défaut
    oups,
    J'avais utilisé la fonction move_upload_file(); et je cherche à récupérer le fichier dans le tmp_dir, je pense que c'est une contradiction,
    en renseignant le chemin du fichier: "dossier/fichier", ça marche jusqu'à ce stade

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fopen, failed to open stream
    Par Unkof dans le forum Langage
    Réponses: 2
    Dernier message: 22/11/2013, 14h32
  2. fopen , failed to open stream, droit
    Par Pelmat dans le forum Langage
    Réponses: 3
    Dernier message: 09/04/2008, 12h42
  3. Problème fopen (failed to open stream)
    Par Zolex dans le forum Langage
    Réponses: 4
    Dernier message: 03/10/2007, 08h52
  4. [FTP] Erreur "failed to open stream"
    Par Nefret dans le forum Langage
    Réponses: 2
    Dernier message: 04/11/2005, 19h53

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