Bonjour,
Si vous avez déjà fait un site qui charge des fichiers joints de tous types? pouvez vous me renseigner.

Je n'arrive pas à afficher un fichier stocké dans un champ BLOB d'une table MySqL (si ce fichier dépasse 100.000 caractéres.).

Voir le document joint.

J'ai mis le source du LOAD du FICHIER et le SOURCE du FICHIER UPLOAD
ainsi que les différents écrans dans le .doc joint
J'ai fait plusieurs essais avec différents navigateurs. (idem).

Je pense avoir un probléme sur la partie HEADER CONTENT mais !!!!!

Bonsoir,


----------------------------

FORMULAIRE permettant le chargement d’un fichier
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
 
<?                                                                                             
$max=1000000;                                                                                                                                         
?>   
Joindre un fichier </td><td width="400">                                                                         
<FORM enctype="multipart/form-data" ACTION="editTicket-simple.php" METHOD='POST'>  
<font  color='black'   face='Verdana' size='1'>   
<input TYPE='hidden' name='MAX_FILE_SIZE' value= "<?php $max ?>" car.>                                                                                           
<input TYPE='file'   NAME='fich' size=50 MAXLENGTH=80>                                                                       
</td>
<td><font  color="black" face="Verdana" size="1" align="left" > 
  Attention ! la taille des fichiers est limitée à 1 Mega.
  </td>
 <input type=hidden name=GRILLE_1_FOIS value="1"> 
  </tr>
</table>  
 
 <table border="0" width="900" id="table3">
<tr>
    <td width="150"><font color="#990000" font face="Verdana" size="1" align="center">
  &nbsp;&nbsp;&nbsp;&nbsp;<input type='submit' name='envoi' value='Enregistrer'>   
</FORM>
-------------------------------------------------


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
 
Ecriture dans la table FICHE de la  base Mysql  
 
<?php
if (isset ($_POST['envoi']) ) {                                       
	$envoi=$_POST['envoi']; }                                                                                                                                                                                                                 
if ($envoi) { 
$_SESSION['fiche_joint']=1;      
//echo '-- F I C H I E R-----';                                           
 $fich= $_FILES['fich']['tmp_name'];                                     
 $taille = $_FILES['fich']['size'];                                       
 $type = $_FILES['fich']['type'];                                       
 $nom = $_FILES['fich']['name'];  
//------------------------------------------------ 
//----Lecture du COMPTEUR et REECRITURE PLUS 1-----
//------------------------------------------------
$fiche_numero++;  
 if ($f = fopen( $fich, "r")) {                                
 $contenu=fread($f, $taille);                     
 $donnees=addslashes($contenu);
 }  
//---------------
//--------------
require('include-ouvert-base.php');	  
$sql = "INSERT INTO FICHE  ( F_NUMERO,F_PIECE_J1,F_PIECE_J1_TAILLE,F_PIECE_J1_NOM,F_PIECE_J1_TYPE) 
          VALUES('$fiche_numero','$donnees','$taille','$nom','$type')";      	
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$new_message = '<font color="red">le fichier joint a été ajouté...</font>';
}
// fin envoi
 
Une partie de la  description de la table        FICHE
F_PIECE_J1			blob			BINARY		Non  
 	F_PIECE_J1_NOM			varchar(100)		Oui		NULL 	 
 	F_PIECE_J1_TAILLE		int(11)			Non		0	 
 	F_PIECE_J1_TYPE		varchar(30)		Oui		NULL 	 
 	F_PIECE_J11			blob			BINARY		Non	  
	F_PIECE_J11_NOM		varchar(100)		Oui		NULL 	 
  	F_PIECE_J11_TAILLE		int(11)			Non		0	 
 	F_PIECE_J11_TYPE		varchar(30)		Oui		NULL
----------------------------------------------
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
 
 
Lecture dans la table FICHE de la  base Mysql  
 
 
<?php
session_start();
extract($_POST);
//------------------------------------------------
//----------  ACCES  FICHE JOINTE -----J 1--------
//------------------------------------------------
$direct=$_SESSION['direct'];
if($_SESSION['GRILLE_J1']=="1") {
require('include-ouvert-base.php');
$select = "select F_NUMERO,F_PIECE_J1,F_PIECE_J1_NOM,F_PIECE_J1_TAILLE,F_PIECE_J1_TYPE
FROM FICHE WHERE F_NUMERO = '$direct' ";
$result = mysql_query($select,$con)or die('Erreur SQL !'.$select.'<br>'.mysql_error()); 
$total = mysql_num_rows($result); 
if   ($total == 0)  
 {	
	echo("<br/>");	
        echo '<font color="red">.....! Numéro de fiche inconnu :';
	echo  $direct;
	echo("</font>");
	$_SESSION['direct']=$direct;
?>		
	<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FF0000">
	Désolé , mais cette fiche n existe pas</font></strong></td>
<?php  
break;		
       }      
while($row = mysql_fetch_array($result)) {
$NUMERO=$row[0];
$F_J1=$row[1];
$F_J1_NOM=$row[2];
$F_J1_TAILLE=$row[3];
$F_J1_TYPE=$row[4];
     }
header("Content-Disposition: attachment; filename=".$F_J1_NOM.";");
header("Content-Length: ".$F_J1_TAILLE);
header("Content-Type: ".$F_J1_TYPE);		
echo $F_J1;
 }
echo 'rien';