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

PHP & Base de données Discussion :

insertion de fichier dans la base mysql


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 219
    Par défaut insertion de fichier dans la base mysql
    j'ai le code suivant
    pour me permete de gerer les documents (fichier) electronique crées dans une base de données accessibel via le intranet/internet. mais il ne fonctionne pas correctement et le fichier de fichier est en caractere spéciaux.
    le fichier ajouter_doc_form.php
    Code : 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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <?php
    include('../connexion.inc.php');
    ?>
    <html>
    <head>
    <title>Ajouter un Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="../lien.css" rel="stylesheet" type="text/css">
    </head>
    <body marginheight="40" bgcolor="#fffcd9" leftmargin="30">
    <form action="ajout_document.php" method="POST" enctype="multipart/form-data">
    <?php
    echo "<center>"; 
    echo "<span class=style2>- Ajouter un document-</span><br><br><br>";
    ?>
    <fieldset>
     <legend>Gestion des Informations sur le document</legend>
    <table>
    <tr>
    	<td>
    	<span class="style4">Nom du Document</span>
    	</td>
    	<td>
    		<input type="text" name="nom_doc">
    	</td>
    </tr>
    <tr><td>Titre du Document</td> <td><input type="text" name="titre_doc" id="titre_doc" /></td></tr>
    <tr>
    	<td>
    	<span class="style4">Date : </span>
    	</td>
    	<td>
    		<?php
    		echo "<select name=\"jour\">";
    		echo "<option value=\"0\"></option>";
    		for($i=1;$i<32;$i++)
    			echo "<option value=\"$i\">$i</option>";
    		echo "</select>&nbsp;&nbsp;";
    		echo "<select name=\"mois\">&nbsp;&nbsp;";
    		echo "<option value=\"0\"></option>";
    		for($i=1;$i<13;$i++)
    			echo "<option value=\"$i\">$i</option>";
    		echo "</select>&nbsp;&nbsp;";
    		echo "<select name=\"annee\">";
    		echo "<option value=\"0\"></option>";
    		for($i=2000;$i<2020;$i++)
    			echo "<option value=\"$i\">$i</option>";
    		echo "</select>";
    		?>
    	</td>
    </tr>
    <tr><td height="8"></td></tr>
    <tr>
    	<td><span class="style4">Description</span></td>
    	<td>
    		<textarea name="description_doc"></textarea>
    	</td>
    </tr>
    <tr><td>Fichier du Document</td> <td><input type="file" name="document" id="document" /></td></tr>
    <tr><td>Auteur du Document</td> <td><input type="text" name="auteur_doc" id="auteur_doc" /></td></tr>
    </table>
    </fieldset>
    <div align="center"><input type ="submit" value="Enregistrer">
      <input name="R&eacute;initialiser" type ="reset" value="Annuler">
    </div>
    </form>
    </body>
    </html>
    <?
    //mysql_close(); 
    ?>
    le fichier ajout_document.php
    Code : 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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    <?php
    include("../connexion.inc.php");
    ?>
    <html>
    <head>
    <title>Ajout un document </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="../lien.css" rel="stylesheet" type="text/css">
    </head>
    <body bgcolor="#fffcd9" marginheight="25" leftmargin="25">
    <?php
    /*
    //récupération des données à inserrer
    if(isset($_POST['validation'])) {
    	 
    	 //Indique si le fichier a été téléchargé
    	 if(!is_uploaded_file($_FILES['image']['tmp_name']))
    		echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
    	 else {
    		//liste des extensions possibles    
    		$extensions = array('/pdf', '/doc', '/docx', '/xlsx','/xls','/ppt');
    		//vérifie si l'extension est dans notre tableau            
    		if(!in_array($extension, $extensions))
    			echo 'Vous devez uploader un fichier de type pdf, doc,docx, ppt,xls,xlsx.';
    		else {         
    			//on définit la taille maximale
    			define('MAXSIZE', 300000);        
    			if($_FILES['image']['size'] > MAXSIZE)
    			   echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
    			else {
    				*/
    				//$id_doc=$_POST["id_doc"];
    				$nom_doc=$_POST["nom_doc"];
    				$titre_doc=$_POST["titre_doc"];
    				$description_doc=$_POST["description_doc"];
    				$d=$_POST['jour'];
    				$m=$_POST['mois'];
    				$y=$_POST['annee'];
    				$date_creat=$y.'-'.$m.'-'.$d;
    				if($d==0)
    					$date=NULL;
    				//Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les données binaires contiennent des 
    				//caractères spéciaux.
    				//$image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name']));
    				$file_doc= mysql_escape_string(file_get_contents($_FILES ['file_doc']['tmp_name']));
    				//récupère la chaîne à partir du dernier / pour connaître l'extension
    				$extension = strrchr($_FILES['file_doc']['type'], '/');
     
    				//$extension=$_POST['extension'];
    				$auteur_doc=$_POST['auteur_doc'];
    				//requete de mise à jour 
    				$requete="insert into document (id_doc, nom_doc,titre_doc, description_doc, date_creat, file_doc, extension,
    				auteur_doc )
    				values ('', '".$nom_doc."', '".$titre_doc."', '".$description_doc."', '".$date_creat."', '".$file_doc."', '".$extension."','".auteur_doc."')";
    				$resultat=mysql_query($requete) or die(mysql_error());
    				if($resultat)
    					echo("<span class=\"style4\">L'ajout à été correctement effectuée</span>") ;
    				else
    					echo("<span class=\"style4\">L'ajout à échouée</span>") ;
    				// bouton de retour
    				echo "<br><br>";
    				echo "<form>";
    				echo "<input type='button' value=\"Retour\" onclick=\"window.location='ajouter_sinistre_form.php';\">";
    				echo "</form>";
    				//mysql_close(); 
    /*
    			}
    			}
    			}
    			}
    			*/
    ?>			
    </body>
    </html>
    lorsque j'excute le premier formulaire alors le deuxieme doit me permettre d"inserrer les donneés dans ta table
    alors les erreurs suivants:
    Undefined index: file_doc à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $file_doc= mysql_escape_string(file_get_contents($_FILES ['file_doc']['tmp_name']));
    Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty

    dans la table, il me fait dans le champs file_doc: [BLOB - 0o]

    Merci de m"aider

  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
    Ton champ s'appelle "document" et non "file_doc"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 219
    Par défaut
    bonjour
    je suis arrivé à corriger comme indiqué le code
    l'insertion s'effectue correctement, mais lorsque je souhaite afficher dans une fenetre alors, l'icone ou image du fichier est affiché avec une x rouge, comme si le fichier n'est pas bon,
    j'ai pris le champ en question comme un blob( binaire)
    Code : 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
    <?php
    include("../connexion.inc.php");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Ma galerie d'images</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	   <style type="text/css">
    		body {
    			width: 95%;
    		}
     
    		div {
    			width: 22%;
    			float: left;
    			text-align: center;
    			border: 1px solid black;
    			margin: 5px;
    			padding:  5px;
    		}
     
    		p {
    			text-align: left;
    		}
     
    		a {
    			color: #000000;
    			text-decoration: none;
    		}
    	   </style>
       </head>
       <body>
     
    	<h1>Ma galerie des Documents</h1>
        <?php
        $affichage = mysql_query("SELECT id_doc, nom_doc,titre_doc,description_doc FROM document") or exit (mysql_error());
    	    while($result = mysql_fetch_assoc($affichage)) {
     
    		echo '<div>';
    		echo '<a href="apercu_doc.php?id_doc='.$result['id_doc'].'"><img src="apercu.php?id_doc='.$result['id_doc'].'" alt="'.$result['nom_doc'].'" title="'.$result['titre_doc'].'" /></a>';
    		echo '<p>Description : '.$result["description_doc"].'</p>';
    		echo '</div>';
    	    }
    	 //   mysql_close();
    	?>
     
    </body>
    </html>
    comment faire pour avoir un bon aperçu de la liste des fichier de la table

Discussions similaires

  1. [MySQL] Insertion champ fichier dans une base MySql
    Par lemzo84 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 08/02/2015, 23h37
  2. [MySQL] Problème d'insertion de données dans une base MySql à partir d'un fichier csv
    Par kazabandi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/12/2010, 18h05
  3. Réponses: 14
    Dernier message: 08/08/2006, 11h31
  4. Stockage de fichiers dans une base MySQL
    Par FredMines dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 09/01/2006, 22h15
  5. Réponses: 11
    Dernier message: 01/06/2005, 15h18

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