Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/01/2011, 10h35   #1
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 143
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 143
Points : 30
Points : 30
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 :
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 :
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 :
$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
kitcarson23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 10h57   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ton champ s'appelle "document" et non "file_doc"
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 14h38   #3
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 143
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 143
Points : 30
Points : 30
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 :
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
kitcarson23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h18.


 
 
 
 
Partenaires

Hébergement Web