Inserer un fichier pdf dans ma base de données avec un dossier
Noob_Achiles
Messages postés
5
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
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
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:
- Inserer un fichier pdf dans ma base de données avec un dossier
- Comment réduire la taille d'un fichier - Guide
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Insérer vidéo dans powerpoint - Guide
2 réponses
Bonjour,
Déjà ... ceci
Doit être modifié en :
Cordialement,
Jordane
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
Noob_Achiles
Messages postés
5
Statut
Membre
encore je ne puisse pas trouver le fichier dans le repertoir destination
jordane45
Messages postés
40050
Statut
Modérateur
4 757
>
Noob_Achiles
Messages postés
5
Statut
Membre
Et tu as quoi comme message ?
Noob_Achiles
Messages postés
5
Statut
Membre
"New record created successfully"
Bonjour,
Peux tu tester ça :
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;
}
}
}
?>