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):
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 <?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'); } ?>
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
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'); } ?>
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
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 ;
et s'affiche ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part header ("Content-type: ".$col['type']);
Après cette erreur s'affiche tout le code blob du fichier. Exemple :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
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.
Partager