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 fichier 'failed to open stream'


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut upload fichier 'failed to open stream'
    Bonjour,

    Je viens vers vous pour un problème concernant la mise en place d'un uploader de fichier fait 'maison'.

    Le problème vient d'un message d'erreur dans la page de réception des données du formulaire où se trouve l'input file.

    Il me dit
    Warning: move_uploaded_file(./images/monde/trait_hori_red.png) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\city builder v 0.0\pages generales\carte_du_monde\nouveau monde\index_creation_nouveau_monde.php on line 151
    et donc
    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\php348A.tmp' to './images/monde/trait_hori_red.png' in C:\wamp\www\city builder v 0.0\pages generales\carte_du_monde\nouveau monde\index_creation_nouveau_monde.php on line 151
    *

    Apparemment, il ne trouve pas le fichier source qui a pourtant bien été sélectionné par la boite de dialogue.
    J'ai vérifié, il n'a pas non plus été copié dans le répertoire temp de wamp (j'utilise wampserver).

    J'ai vérifié les options dans phpinfo et l'envoi de fichier est bien autorisé.

    Donc, je comprend pas trop pourquoi il ne le met pas en cache avant l'envoi des données du formulaire.

    A moins qu'en local, on ne puisse pas simuler un upload de fichier
    Mais cela m'étonnerai...

    Je met un peu de code source au cas où:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form method="post" action='index_creation_nouveau_monde.php' class="form-horizontal well" enctype="multipart/form-data">
     
    <fieldset>
    										<legend>Image</legend>
    	<input type="hidden" name ="MAX FILE SIZE" value="2000000">
            <input onchange='change_image_file();' type="file" size=30          name="upfich[]" id="upfichier" multiple accept="*">
            <button type="button" class="btn" id="btnEnv" onclick='refresh_div("div_upload","upload.php?etape=2");'>Upload</button>
    	</fieldset>
     
    <input type=submit size=20 value="Passez à l'étape 2" onclick='validation_etape_1()'/>	
     
    </form>

    dans le fichier php de réception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $adresse_avant=$_FILES['upfich']['tmp_name'][$i];
    $adresse_apres='./images/monde/'.$_FILES['upfich']['name'][$i];
    echo $adresse_avant;
    echo $adresse_apres;
    $copie=move_uploaded_file($adresse_avant,$adresse_apres);
    if($copie)
    {
    	echo "<p>Fichier copié</p>";
    }
    else 
    {
    	echo "erreur de copie";
    }
    Quelqu'un aurait-il une idée?
    Vous remerciant.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Verifie s'il y a des erreurs d'upload avant d'essayer de déplacer le fichier.
    Tu ne peux pas voir manuellement le fichier temporaire à moins de ruser, il est détruit à la fin de script.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    merci de ta réponse.

    Il n'y a aucune erreur : si je met en commentaire la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /*
    $copie=move_uploaded_file($adresse_avant,$adresse_apres);
    if($copie){
        echo "<p>Fichier copié</p>";
    }
    else {
    	echo "erreur de copie";
    }
    */													//Pour faire comme si
    echo "<p>Résultat : le fichier ".$_FILES['upfich']['name'][$i]." a bien été reçu par le serveur (mais non stocké sur ce dernier).</p>";
    echo $_POST['nom_nouveau_monde'].' -> '.$_FILES['upfich']['tmp_name'][0];
    Il 'affiche bien que le fichier a été reçu mais non stocké sur le serveur.
    Avant ce code, j'ai des test d'erreur qui m'affiche les erreurs s'il y en a, mais apparamment il n'y a aucune erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if ($_FILES['upfich']['error'][$i]>0)
    {
    	switch ($_FILES['upfich']['error'][$i])
    	{     
    		case 1:     echo $_FILES['upfich']['name'][$i]." : le fichier dépasse la limite autorisée par le serveur !";  break;     
    		case 2:     echo $_FILES['upfich']['name'][$i]." : le fichier dépasse la limite autorisée dans le formulaire HTML !";  break;     
    		case 3:    echo $_FILES['upfich']['name'][$i]." : l'envoi du fichier a été interrompu pendant le transfert !";    break;     
    		case 4:      echo $_FILES['upfich']['name'][$i]." : le fichier que vous avez envoyé a une taille nulle !"; 	break;
    	}
    }
    L'erreur n'apparait que quand je met la fonction move_uploaded_file...

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $adresse_apres='images\monde\'.$_FILES['upfich']['name'][$i];
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Il n'accepte pas '\'. Il me met
    ( ! ) Parse error: syntax error, unexpected T_STRING in C:\wamp\www\city builder v 0.0\pages generales\carte_du_monde\nouveau monde\index_creation_nouveau_monde.php on line 165
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $adresse_apres='images/monde/'.$_FILES['upfich']['name'][$i];
    Toujours la même erreur...

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $adresse_apres='images\\monde\\'.$_FILES['upfich']['name'][$i];
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [Upload] Failed to open stream
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 21/02/2007, 10h33
  2. [Système] failed to open stream: Too many open files
    Par shamanlinks dans le forum Langage
    Réponses: 7
    Dernier message: 23/05/2006, 11h59
  3. Réponses: 4
    Dernier message: 29/12/2005, 19h35
  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