Je ne comprend pas pourquoi ca ne veut pas s'upload

Fermé
jeann_9499 Messages postés 10 Date d'inscription vendredi 18 décembre 2020 Statut Membre Dernière intervention 30 décembre 2020 - Modifié le 22 déc. 2020 à 20:53
jeann_9499 Messages postés 10 Date d'inscription vendredi 18 décembre 2020 Statut Membre Dernière intervention 30 décembre 2020 - 30 déc. 2020 à 18:01
Bonsoir j'ai un probleme en php qui me donne un mal de tête. je n'arrive pas a comprendre pourquoi mon fichier ne s'upload pas sur le serveur.

Mon code consiste a mettre sur mon serveur des documents administratif , pour les cartes id cela fonctionne très bien mais quand je fais exactement pareille pour le document cerfaM0 ca ne fonctionne pas ...

Mon code pour la carte id (fonctionne !!!)


// UPLOAD PIECE IDENTITE

    if(isset($_POST['piece_id'])){                                  

        $name_files = $_FILES['pieceid']['name'];                        
        $date_now = '-'.date("H-i-s");
        $type_files = "." . strtolower(substr(strrchr($name_files, '.'), 1));
        $target_file = $_FILES['pieceid']['tmp_name'];                                
        $real_name = substr($name_files, 0, -4);
        $file_name = '../../../src/crea_societe/pieceid/'. $real_name . $date_now . $type_files; 
        $resultat = move_uploaded_file($target_file, $file_name);

        if($resultat){

            $update = $bdd->prepare('UPDATE crea_societe SET doc_pieceid = ? WHERE id = ?');
            $update->execute(array(

            ($real_name . $date_now . $type_files),
            ($_GET['num'])
            
    ));

            header('Location: creation-view-physique.php?num='.$_GET['num']);
            exit();
        }       
    }



html pour carte id


<form action="" method="POST" enctype="multipart/form-data">
       <input type="hidden" value="true" name="piece_id">
       <div class="image-upload">
       <label for="file-input">
      <div class="livicon-evo" data-options=" name: <?php if($crea['doc_pieceid'] == ""){echo "plus-alt";}else{echo "morph-link";} ?>.svg; size: 25px "></div>
       </label>

    <input accept="image/png, image/jpg, image/jpeg, application/pdf" id="file-input" name="pieceid" type="file" onchange="this.form.submit();">
    </div>
</form>





Maintenant j'ai exactement le même code mais ça ne fonctionne pas (il sont sur la même page ...)


// UPLOAD cerfaM0

    if(isset($_POST['cerfaM0_id'])){                                        

        $name_files = $_FILES['cerfaM0']['name'];                         
        $date_now = '-'.date("H-i-s");
        $type_files = "." . strtolower(substr(strrchr($name_files, '.'), 1));
        $target_file = $_FILES['cerfaM0']['tmp_name'];                                     
        $real_name = substr($name_files, 0, -4);
        $file_name = '../../../src/crea_societe/cerfaM0/'. $real_name . $date_now . $type_files; 
        $resultat = move_uploaded_file($target_file, $file_name);

        if($resultat){

            $update = $bdd->prepare('UPDATE crea_societe SET doc_cerfaM0 = ? WHERE id = ?');
            $update->execute(array(

            ($real_name . $date_now . $type_files),
            ($_GET['num'])
            
    ));

            header('Location: creation-view-physique.php?num='.$_GET['num']);
            exit();
        }       
    }



html


<form action="" method="POST" enctype="multipart/form-data">
  <input type="hidden" value="true" name="cerfaM0_id">
  <div class="image-upload">
    <label for="file-input">
      <div class="livicon-evo" data-options=" name: <?php if($crea['doc_cerfaM0'] == ""){echo "plus-alt";}else{echo "morph-link";} ?>.svg; size: 25px "></div>
  </label>

  <input accept="image/png, image/jpg, image/jpeg, application/pdf" id="file-input" name="cerfaM0" type="file" onchange="this.form.submit();">
    </div>
</form>

A voir également:

2 réponses

jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
22 déc. 2020 à 21:01
Bonjour,

Commence par mettre en commentaire la redirection le temps de tes tests.
Ensuite, fais un var_dump de ta variable $_POST et de ta variable $_FILES

Assure toi également que le dossier de destination existe en utilisant la fonction is_dir()

Ajoute également un controle sur le is_uploaded pour t'assurer, avant le move que le fichier est bien uploadé
$num = !empty($_GET['num']) ? $_GET['num'] : NULL;

if (is_uploaded_file($_FILES['cerfaM0']['tmp_name'])) {
  echo "File ". $_FILES['cerfaM0']['name'] ." téléchargé avec succès.\n";
  $dir = '../../../src/crea_societe/cerfaM0/';
  
  if(!is_dir($dir)){
    echo " Le répertoire de destination n'existe pas !";
    exit;
  }
  
  $name_files = $_FILES['cerfaM0']['name'];                         
  $date_now = '-'.date("H-i-s");
  $type_files = "." . strtolower(substr(strrchr($name_files, '.'), 1));
  $target_file = $_FILES['cerfaM0']['tmp_name'];                                     
  $real_name = substr($name_files, 0, -4);
  $file_name = $dir. $real_name . $date_now . $type_files; 
  if($resultat = move_uploaded_file($target_file, $file_name)){
    $update = $bdd->prepare('UPDATE crea_societe SET doc_cerfaM0 = ? WHERE id = ?');
    $update->execute(array( ($real_name . $date_now . $type_files), $num  ));
    //header('Location: creation-view-physique.php?num='.$_GET['num']);
    exit();
  }else{
     echo "Erreur lors du déplacement de fichier !"; 
     exit;
  }
  
} else {
   echo "Erreur lors de l'upload du fichier : ";
   echo "Nom du fichier : '". $_FILES['cerfaM0']['tmp_name'] . "'.";
}

0
jeann_9499 Messages postés 10 Date d'inscription vendredi 18 décembre 2020 Statut Membre Dernière intervention 30 décembre 2020
Modifié le 22 déc. 2020 à 23:39
Ca marche quand il y a qu'un seul form sur la page, mais la j'ai un probleme.

Il y a plusieur form sur la page pour sache document mais a chaque fois ca execute le premiere formulaire (celui de pieceid), je pense que c'est a cause du js , qui permet de faire un auto submit quand il detecte un fichier ...


<li class="cursor-pointer pb-25">
                                                                        <small class="text-muted ml-1 attchement-text <?php if($crea['doc_pieceid'] == ""){echo "warning";}else{echo "success";} ?>">Piece d'identitée :</small>
                                                                        <img src="../../../app-assets/images/icon/<?= $crea_pieceid ?>" height="30" alt="psd.png">
                                                                        <small class="text-muted ml-1 attchement-text"><?= $crea['doc_pieceid'] ?></small>

                                                                        <form action="php/insert_pieceid.php" method="POST" enctype="multipart/form-data">
                                                                            <input type="hidden" value="<?= $_GET['num'] ?>" name="num">
                                                                            <div class="image-upload">
                                                                                <label for="file-input">
                                                                                    <div class="livicon-evo" data-options=" name: <?php if($crea['doc_pieceid'] == ""){echo "plus-alt";}else{echo "morph-link";} ?>.svg; size: 25px "></div>
                                                                                </label>

                                                                                <input accept="image/png, image/jpg, image/jpeg, application/pdf" id="file-input" name="pieceid" type="file" onchange="this.form.submit();">
                                                                            </div>
                                                                        </form>

                                                                        <a class="<?php if($crea['doc_pieceid'] == ""){echo "nonedoc";} ?>" href="../../../src/crea_societe/pieceid/<?= $crea['doc_pieceid'] ?>"><div class="livicon-evo" data-options=" name: morph-eye-open-close.svg; size: 25px "></div></a>
                                                                    </li>

                                                                    <li class="cursor-pointer pb-25">
                                                                        <small class="text-muted ml-1 attchement-text <?php if($crea['doc_cerfaM0'] == ""){echo "warning";}else{echo "success";} ?>">Cerfa M0 :</small>
                                                                        <img src="../../../app-assets/images/icon/<?= $crea_cerfaM0?>" height="30" alt="psd.png">
                                                                        <small class="text-muted ml-1 attchement-text"><?= $crea['doc_cerfaM0'] ?></small>

                                                                        <form action="php/insert_cerfaM0.php" method="POST" enctype="multipart/form-data">
                                                                            <input type="hidden" value="<?= $_GET['num'] ?>" name="num">
                                                                            <div class="image-upload">
                                                                                <label for="file-input">
                                                                                    <div class="livicon-evo" data-options=" name: <?php if($crea['doc_cerfaM0'] == ""){echo "plus-alt";}else{echo "morph-link";} ?>.svg; size: 25px "></div>
                                                                                </label>

                                                                                <input accept="image/png, image/jpg, image/jpeg, application/pdf" id="file-input" name="cerfaM0" type="file" onchange="this.form.submit();">
                                                                            </div>
                                                                        </form>

                                                                        <a class="<?php if($crea['doc_cerfaM0'] == ""){echo "nonedoc";} ?>" href="../../../src/crea_societe/cerfaM0/<?= $crea['doc_cerfaM0'] ?>"><div class="livicon-evo" data-options=" name: morph-eye-open-close.svg; size: 25px "></div></a>
                                                                    </li>

<!-- ect ect -->




le code js =
 onchange="this.form.submit();"
au milieu du code html

En gros meme si je met un document dans la parite cerfaM0 , ca me ramene sur ---> insert_pieceid.php

Mais sinon le code d'upload marche , c'etait un pb de js , si je me trompe pas ?
0
jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689 > jeann_9499 Messages postés 10 Date d'inscription vendredi 18 décembre 2020 Statut Membre Dernière intervention 30 décembre 2020
22 déc. 2020 à 23:43
Mets des ID à tes form et utilises la syntaxe
document.getElementById("id_du_form_à_submit").submit();

*
Mais bon, là ce n'est plus un problème lié à l'upload de fichier ni au code php...
Pour le coup ça devient un souci de Javascript éventuellement...
0