Bonjour,

Depuis quelque semaines je réalise un intranet pour une petite entreprise. J'ai décidé après mur réflexion de stocker mais fichiers dans une base de donnée, facilitant l'accès à ceux ci et évitant les problèmes de transfert pour le déplacement. Bref ayant les 2 solution l'une fonctionne parfaitement avec les chemins stocké l'affichage l'insertion tout marche parfaitement. Mais concernant l'autre méthode j'arrive a stocker mais fichier dans la base de donnée a les transférer en type blob etc mais je n'arrive pas à les afficher malgré de nombreuses tentatives et tutos tenté rien n'y fait je n'arrive pas à m'en sortir. C'est donc pour cela que je viens vous voir et vous demandé un petit coup de main afin d'éclairer ma lanterne égaré . "j'utilise
PHPmyadmin 2.9.2"

Voici mais codes :

"liste.php" (qui fait appel à la page apercu.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
 
<?php 
// On démarre la session
session_start();
 
include ("config.php"); 
if ($_SESSION['role'] == "admin") 
{
?>
<html>
<head><title>Stock d'images</title></head>
<body>
<?php
$connexion= mysql_connect($MyServeur,$MyLogin,$MyPass) or die ("Erreur, connexion à la base de données impossible");
mysql_select_db($MyBase,$connexion);
 
//echo '<pre>', print_r($GLOBALS), '</pre>'; 
 
$req = "SELECT nom, id, description, taille, type ".
"FROM documents ORDER BY nom";
$ret = mysql_query ($req) or die (mysql_error ());
while ( $col = mysql_fetch_row ($ret) )
{
echo "<a href=\"apercu.php?id=".$col[1].
"\">".$col[0]."</a><br />";
}
?>
</body>
</html>
<?php
}
else 
{
header('Location: ../../connection.php');
}
?>
Et la seconde "apercu.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
 
<?php 
// On démarre la session
session_start();
 
include ("config.php"); 
if ($_SESSION['role'] == "admin") 
{
?>
 
<?php
if ( isset($_GET['id']) )
{
$id = intval ($_GET['id']);
 
//echo '<pre>', print_r($GLOBALS), '</pre>'; 
 
$connexion= mysql_connect($MyServeur,$MyLogin,$MyPass) or die ("Erreur, connexion à la base de données impossible");
mysql_select_db($MyBase,$connexion);
 
$req = "SELECT id, type, fichier ".
"FROM documents WHERE id = ".$id;
$r = mysql_query ($req) or die (mysql_error ());
 
if(mysql_num_rows($r) == 1) 
{
$type = @mysql_result($r, 0, "type");
$donnees = @mysql_result($r, 0, "fichier");
header("Content-type: $type");
echo $donnees;
}
else
{
echo "Erreur, pas trouvée le fichier";
}
}
else
{
echo "Mauvais id d'image";
}
 
 
 
//$col = mysql_fetch_array ($ret);
//if ( !$col['id'] )
//{
//echo "Id d'image inconnu";
//}
//else
//{
//header ("Content-type: ".$col['type']);
//print $col['fichier'];
//exit(); 
//}
//}
//else
//{
//echo "Mauvais id d'image";
//}
?>
<?php
}
else 
{
header('Location: ../../connection.php');
}
?>
Extrait de ma BDD concerné:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
`documents` (
  `id` int(11) NOT NULL auto_increment,
  `nom` varchar(50) NOT NULL default '',
  `description` varchar(100) NOT NULL default '',
  `taille` varchar(10000) NOT NULL,
  `type` varchar(30) NOT NULL default '',
  `fichier` longblob NOT NULL,
  `date` varchar(20) NOT NULL,
  `chemin` varchar(200) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=61 ;
Voila, donc la variable en GET passe très bien entre les deux pages, l'erreur survient aux moment du :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
header ("Content-type: ".$col['type']);
et s'affiche ainsi :
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Proto1\Admin\Documents\apercu.php:10) in C:\wamp\www\Proto1\Admin\Documents\apercu.php on line 31
Après cette erreur s'affiche tout le code blob du fichier. Exemple :
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
ÿØÿà�JFIF���d�d��ÿþ�Adobe ImageReadyÿì�Ducky�����.��ÿî�Adobe�dÀ���ÿÛ�„�      )))))//////////     ((&((//////////ÿÀ��Ô"�ÿÄ�ª�������������������������������!1AQaq"‘¡2±ÁBÑáR#ðñbr’3‚¢ÂST5�������!1AqQa‘"2¡ÁÑBR±rCðáñ3b‚Â#$ÿÚ���?�çlŠ-’.iWY¤Ñ)iîJÀ$'{TN p9(G"¶<ÄE¸ã¼{ÕæÌ’䥺º@ïÔ,;MQÈ,;©€ï%U\�ªÕßn?²OÁT[A':*ÍäŒ  3Zäi€E6µ¼J‰?‰Ç¨*ÛçûÒìÁZq6n[˜»&»#ZÒªªíoKÅ]q¤ÜŒéµ

Voila merci de vos idées j'attends vraiment un peut d'aide car ce problème me bloque réellement dans mon avancement et je commence a prendre beaucoup de retard, merci d'avance.