Inserer un fichier pdf dans ma base de données avec un dossier

Fermé
Noob_Achiles Messages postés 5 Date d'inscription mercredi 5 avril 2017 Statut Membre Dernière intervention 7 avril 2017 - 7 avril 2017 à 15:39
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 8 avril 2017 à 23:24
Salut, je suis entrain de sauvgarder mes fichiers "devis" sous format pdf à l'aide du mysql et php avec la méthode move_uploaded_file.
j'ai pas de problème avec ma base puisque les champs nom (file_name) et emplacement (chemain où sera déplacé le fichier) sont de type varchar(64). Mais le problème est que le fichier n'est pas deplacé dans le repertoir que j'ai crée "uploaded_devis" sous le deossier www de wampserver. Alors je souhaite trouver une solution concernant ce problème.
NB:
l'interconnexion entre ma formulaire et la base tourne sans aucun problème.

Voilà mon code php

<?php
include 'connexion.php';
if(isset($_POST['numdevis'])){$numdevis= $_POST['numdevis'];} else { echo "Saisisez le numero du devis";}
if(isset($_POST['numtel'])){$numtel= $_POST['numtel'];} else { echo "Saisisez le numero du telephone du prospect";}
if(isset($_POST['typeprospection'])){$typeprospection= $_POST['typeprospection'];} else { echo "selectionnez un type";}
if(isset($_POST['domaine'])){$domaine= $_POST['domaine'];} else { echo "selectionnez un domaine";}

$saisipar='azerty';
$saisile='2017-03-01 00:00:00';
$modifiepar='azerty';
$modifiele='2017-04-01 00:00:00';


$content_dir = 'uploaded_devis/'; // dossier où sera déplacé le fichier
$name_file = $_FILES['fichier']['name'];
if( isset($_POST['fichier']) ) // si fichier soumis
{


$tmp_file = $_FILES['fichier']['tmp_name'];

if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}

// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];

if( !strstr($type_file, 'pdf'))
{
exit("Le fichier n'est pas de type pdf");
}

// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];

if( move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
echo "Le fichier a bien été uploadé";
}
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )
{
exit("Nom de fichier non valide");
}
}

mysqli_begin_transaction($conn, MYSQLI_TRANS_START_READ_WRITE);

$sql_id_clt="SELECT * from client WHERE telephone=$numtel";
$res =mysqli_query($conn,$sql_id_clt);
$enrg=mysqli_fetch_row($res);


$sql = "INSERT INTO `devis` (`numdevis`, `nom`, `emplacement`,`telephone`, `typeprospection`,`saisipar`, `saisile`,`modifiepar`, `modifiele`, `domaine`)
VALUES ('$numdevis', '$name_file', '$content_dir', '$numtel', '$typeprospection', '$saisipar', '$saisile', '$modifiepar', '$modifiele', '$domaine')";

if ($conn->query($sql) === TRUE)
{
echo "New record created successfully";
}
if (!($enrg[6] == $numtel))
{
echo "<br>Client introuvable ajouter le pour que vous puissez ajouter son devis";
}
mysqli_commit($conn);
mysqli_close($conn);

include 'ajouter_devis.php';
?>
A voir également:

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié le 7 avril 2017 à 16:06
Bonjour,

Déjà ... ceci
if( move_uploaded_file($tmp_file, $content_dir . $name_file) )
 { 
 echo "Le fichier a bien été uploadé";
 }
    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }

Doit être modifié en :
if( move_uploaded_file($tmp_file, $content_dir . $name_file) ){ 
    echo "Le fichier a bien été uploadé";
}else{
   echo "Impossible de copier le fichier dans $content_dir";
   exit();
}


Cordialement, 
Jordane                                                                 
1
Noob_Achiles Messages postés 5 Date d'inscription mercredi 5 avril 2017 Statut Membre Dernière intervention 7 avril 2017
7 avril 2017 à 16:36
encore je ne puisse pas trouver le fichier dans le repertoir destination
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > Noob_Achiles Messages postés 5 Date d'inscription mercredi 5 avril 2017 Statut Membre Dernière intervention 7 avril 2017
7 avril 2017 à 16:57
Et tu as quoi comme message ?
0
Noob_Achiles Messages postés 5 Date d'inscription mercredi 5 avril 2017 Statut Membre Dernière intervention 7 avril 2017
7 avril 2017 à 17:11
"New record created successfully"
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
8 avril 2017 à 23:24
Bonjour,

Peux tu tester ça :
<?php

//Activation de l'affichage des erreurs php
error_reporting(E_ALL);
ini_set('display-errors','on');

//connexion à la bdd
require_once 'connexion.php';

//-------------------------------------------------------------------//
//fonction pour récupérer "proprement" les variables POST
function getPost($varName,$valeurParDefaut=NULL){
 return !empty($_POST[$varName]) ? $_POST[$varName] : $valeurParDefaut;
}
//-------------------------------------------------------------------//

//récupération PROPRE des variables POST
$numdevis = getPost('numdevis');
$numtel = getPost('numtel');
$typeprospection = getPost('typeprospection');
$domaine = getPost('domaine');

$errors=array(); // variable qui contiendra les éventuelles erreurs
$result=array(); // variable qui contiendra les "resultats"

//Vérification des saisies

if(!$numdevis) {
  $errors[] = "Saisisez le numero du devis";
}
if(!$numtel) {
  $errors[] = "Saisisez le numero du telephone du prospect";
}
if(!$typeprospection) {
  $errors[] = "selectionnez un type";
}
if(!$domaine) {
  $errors[] = "selectionnez un domaine";
}


$saisipar='azerty';
$saisile='2017-03-01 00:00:00';
$modifiepar='azerty';
$modifiele='2017-04-01 00:00:00';


$content_dir = 'uploaded_devis/'; // dossier où sera déplacé le fichier

//récupération PROPRE des variables FILES
$fichier = !empty($_FILES['fichier']) ? $_FILES['fichier'] : NULL;

/*-------------------------------*/
//juste le temps des tests :
 echo "FILES : <pre>";
 print_r($fichier);
 echo "</pre>";
/*-------------------------------*/

if( is_dir($content_dir) && is_writable($content_dir)){
  if($fichier) {
    $fileName = $fichier['name'];
    $tmp_file = $fichier['tmp_name'];
    $type_file =  $fichier['type'];
    $taille_fichier  = filesize($fichier['tmp_name']);
    $file_err = $fichier['error']
    if($file_err == UPLOAD_ERR_OK){
    if(!preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $fileName)){
      if(is_uploaded_file($tmp_file) ){
        //On vérifie le type de fichier
        $extensions_autorisees = array('.pdf');
        $extension_du_fichier = strrchr($fileName, '.');
        if(in_array($extension, $extensions)) {
          if( move_uploaded_file($tmp_file, $content_dir . $fileName) ){	
            $result[] =  "Le fichier a bien été uploadé";
            mysqli_begin_transaction($conn, MYSQLI_TRANS_START_READ_WRITE);

            $sql_id_clt="SELECT * FROM client WHERE telephone='$numtel' ";
            $res =mysqli_query($conn,$sql_id_clt);
            $enrg=mysqli_fetch_row($res);

            $sql = "INSERT INTO `devis` (`numdevis`, `nom`, `emplacement`,`telephone`, `typeprospection`,`saisipar`, `saisile`,`modifiepar`, `modifiele`, `domaine`)
                    VALUES ('$numdevis', '$name_file', '$content_dir', '$numtel', '$typeprospection', '$saisipar', '$saisile', '$modifiepar', '$modifiele', '$domaine')";

            if ($conn->query($sql)){
               $result[] =  "New record created successfully";
            }

            if (!($enrg[6] == $numtel)){	
              $errors[] = "<br>Client introuvable ajoutez le pour que vous puissez ajouter son devis";
            }

            mysqli_commit($conn);
            mysqli_close($conn);

            include_once 'ajouter_devis.php';
            
          }else{
            $errors[] = " Le fichier " .$tmp_file ." n'a pas pu être déplacé vers :" .$content_dir . $fileName;
          }  
        }else{
          $errors[] = "Le fichier n'est pas de type pdf";
        }
      } else {
        $errors[] = "Le fichier est introuvable";
      } 
    }else{
      $errors[] = ("Nom de fichier non valide");
    }
    }else{
      $errors[] = " File Error : " . $file_err;
    }
  } else {
    $errors[] = "Il n'y a aucun fichier à traiter...";
  }
}else{
  $errors[] = "Le repertoire de destination ($content_dir) n'existe pas ou ne peut pas être 'ecrit' !";
}
//Affichage des erreurs si il y en a :
if(!empty($errors)){
 foreach($errors as $err){
  echo "<br>".$err;
 }
}

//Affichage des messages de "result" si il y en a :
if(!empty($result)){
 foreach($result as $msg){
  echo "<br>".$msg;
 }
}

}


?>

0