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 :

move_uploaded_file : echec de l’ouverture du flux…


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2022
    Messages : 3
    Points : 3
    Points
    3
    Par défaut move_uploaded_file : echec de l’ouverture du flux…
    Bonjour,

    Je suis retraité “Infographiste” et j’ai développé un site personnel une sorte de “biographie pour mes descendants”.

    J’ai créé dans ce site un formulaire où je demande des docs photos et videos aux personnes ayant fait des voyages avec mon épouse et moi même.

    Le formulaire est en HTML et PHP. Or si les champs “texte” semblent fonctionner, il n’en est pas de même pour les champs “fichiers”.

    La réponse est :

    Warning: move_uploaded_file(uploads/MetreLaser.png): Failed to open stream: No such file or directory in /volume1/web/Pages/Formul.php on line 42 Call Stack: 0.0018 359224 1. {main}() /volume1/web/Pages/Formul.php:0 0.0021 359800 2. move_uploaded_file($from = '/volume1/@tmp/phpdtexk1', $to = 'uploads/MetreLaser.png') /volume1/web/Pages/Formul.php:42 Warning: move_uploaded_file(): Unable to move "/volume1/@tmp/phpdtexk1" to "uploads/MetreLaser.png" in /volume1/web/Pages/Formul.php on line 42 Call Stack: 0.0018 359224 1. {main}() /volume1/web/Pages/Formul.php:0 0.0021 359800 2. move_uploaded_file($from = '/volume1/@tmp/phpdtexk1', $to = 'uploads/MetreLaser.png') /volume1/web/Pages/Formul.php:42
    Je vous fais grâce du “champ Video” qui donne le même résultat.

    J’ai alors lu récemment sous différente plate-forme qu’avec (move_uploaded_file) il y avait parfois des problèmes notammen avec "Ngnix". J’ai acheté un tas de bouquins, téléchargé des tutos, rien ne va alors, j’espère trouver une âme charitable pouvant me sortir dans mon impasse.

    Matériels : iMac 27”, macOS v. 13.0.1 “Ventura” -:- Logiciel : “Dreamweaver CC” (PHP 7.1) -:- Hébergement : serveur Synology “Ngnix” DMS 7.1.1-42962 Update 2 (PHP 8.0), possibilité de PHP 7.2, 7.3, 7.4. -:- Ethernet Fibre 1 Gb -:- LiveBox 5 -:- Connexions de tous les appareil en LAN RJ45 (DHCP statiques)

    Je lance donc un appel aux plus compétents que moi et reste bien sûr à disposition pour toutes questions nécessaires.
    Code html : 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Traitement</title>
    </head>
     
    <body>
        <p>Dans le formulaire, ont été fourni les informations suivantes :</p>
     
        <?php
    //Coordonnées
            echo 'Nom : ' .$_POST["nom"]. '<br>';
            echo 'Prénom : ' .$_POST["prenom"]. '<br>';
            echo 'Adresse mail : ' .$_POST["courriel"]. '<br>';
            echo 'Téléphone : ' .$_POST["mobile"]. '<br>';
        
        
      // Tester l'envoi
        if (isset($_FILES['docs']) and $_FILES['docs']['error'] == 0);
        if (isset($_FILES['video']) and $_FILES['video']['error'] == 0)
    {
      // Tester les tailes
        if ($_FILES['docs']['size'] <= 1000000);
        if ($_FILES['video']['size'] <= 6000000)
    {
       // Tester les extensions
            $infosfichier = pathinfo($_FILES['docs']['name']); 
            $extension_upload = $infosfichier['extension'];
            $extension_autorisee = array('txt', 'jpg', 'jpeg', 'pdf', 'gif', 'png');
        
         if (in_array($extension_upload, $extension_autorisee));
            
        $infosfichier = pathinfo($_FILES['video']['name']); 
            $extension_upload = $infosfichier['extension'];
            $extension_autorisee = array('mp3', 'mp4', 'mov');
        
         if (in_array($extension_upload, $extension_autorisee))
    {
        // Valider et Envoyer
             move_uploaded_file($_FILES['docs']['tmp_name'], 'uploads/' .
             basename($_FILES['docs']['name']));
             
             move_uploaded_file($_FILES['video']['tmp_name'], 'uploads/' .
             basename($_FILES['video']['name']));
    {
             
             echo 'Sélectionnez : ' .$_POST["select"]. '<br>';
             echo 'Date : ' .$_POST["date"]. '<br>';
            
    {        
             echo "l'envoi a bien été effectué, Merci !";
             
         // header("Location:ForMerci.html");
             
    }}}}}
         
        ?>

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 877
    Points
    1 877
    Par défaut
    Bonjour,

    Vous devriez commencer par fournir un chemin complet pour le répertoire uploads. Est-il quelque part dans /volume1/web/Pages/ ?
    Ecrire juste "uploads" c'est ambigu, le système doit se référer à quelque chose pour résoudre ce chemin relatif, est-ce l'emplacement de votre script ou autre chose ? Il vaut mieux être explicite, d'autant plus que si vous déplacez votre code ça doit continuer à fonctionner normalement.

  3. #3
    Membre averti Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Points : 429
    Points
    429
    Par défaut
    Votre répertoire "upload" existe-t-il dans le répertoire où la page est ?

    Il me semble que du côté des crochets, c'est un peu le bordel
    exemple correct : if (xxxxxx) { code } ... là je n'ai pas vraiment retrouvé cela

    Pour le test de la taille des fichiers : un exemple, en partant du principe que 1 seul fichier ne peut être téléchargé à la fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($_FILES['docs']['size'] <= 1000000);
    if ($_FILES['video']['size'] <= 6000000) { code }
    //------ Je crois que ce serait plutôt
    if ($_FILES['docs']['size'] <= 1000000 || $_FILES['video']['size'] <= 6000000) { code }
    || = ou
    && = et

  4. #4
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2022
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par binarygirl Voir le message
    Bonjour,

    Vous devriez commencer par fournir un chemin complet pour le répertoire uploads. Est-il quelque part dans /volume1/web/Pages/ ?
    Ecrire juste "uploads" c'est ambigu, le système doit se référer à quelque chose pour résoudre ce chemin relatif, est-ce l'emplacement de votre script ou autre chose ? Il vaut mieux être explicite, d'autant plus que si vous déplacer votre code ça doit continuer à fonctionner normalement.
    Merci de votre promptitude.

    Cette copie d'écran, provient de Dreamweaver de son serveur dévaluation
    Nom : Serveur d'évaluation2.png
Affichages : 384
Taille : 50,6 Ko

  5. #5
    Membre averti Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Points : 429
    Points
    429
    Par défaut
    Votre répertoire "uploads" n'est donc pas dans le même répertoire que votre page.

    Si la page du formulaire n'est pas incluse dans l'index, il faut reculer de 2 étages : ../../uploads/

  6. #6
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2022
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par ddaweb Voir le message
    Votre répertoire "uploads" n'est donc pas dans le même répertoire que votre page.

    Si la page du formulaire n'est pas incluse dans l'index, il faut reculer de 2 étages : ../../uploads/
    Qu'entendez-vous par incluse dans l'index ? ci-contre l'URL de mon site Perso https://caron-gs.ddns.net
    Le bouton "figurine" dirige droit sur le formulaire.

  7. #7
    Membre averti Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Points : 429
    Points
    429
    Par défaut
    OK, le formulaire n'est que 1 étage plus haut que le répertoire uploads (en gras et souligné) : https://caron-gs.ddns.net/Pages/Formulaire.html
    Essayez donc : ../uploads/
    Pour chaque étage à reculer dans la hierarchie des répertoires, il faut mettre : ../

    Je mettais 2 étages car j'ai mal interprété votre screen, je pensais que vous étiez sous le répertoire : xPagesAlbums

Discussions similaires

  1. [Débutant] echec connexion en localhost pour consommer un flux xml
    Par megaloplex dans le forum C#
    Réponses: 10
    Dernier message: 08/04/2013, 16h36
  2. Réponses: 8
    Dernier message: 27/03/2012, 19h50
  3. Workflow : Echec de demarrage du flux de travail
    Par placebomuse dans le forum SharePoint
    Réponses: 1
    Dernier message: 26/05/2007, 09h36
  4. Copie d'un flux dans un autre
    Par Morvan Mikael dans le forum Langage
    Réponses: 5
    Dernier message: 03/06/2003, 09h40
  5. [reseaux] redirection de flux
    Par Olive1808 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 12/08/2002, 09h24

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