[SGBD] [Image] BLOB mysql, probléme de restitution ( et/ou insertition ? )
bonjour,
j'ai un formulaire simple :
Code:
1 2 3 4 5
|
<form method="post" action="#" enctype="multipart/form-data">
<input type="file" name="fichier" size="30"/>
<input type="submit" value="envoyer"/>
</form> |
je recupere et stocke le fichier de cette maniére :
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
|
function insertFileForAgent($param)
{
if(isset($_FILES['fichier']))
{
$tmp_file = $_FILES['fichier']['tmp_name'];
$type_file = $_FILES['fichier']['type'];
if(!is_uploaded_file($tmp_file))
{
die("Le fichier n'a pas pu être uploader...");
}
if( !strstr($type_file, 'application/vnd.ms-excel'))
{
exit("Le fichier n'est pas un document MS excel".$type_file);
}
$fp=fopen($_FILES['fichier']['tmp_name'],'rb');
$content=fread($fp,filesize($_FILES['fichier']['tmp_name']));
fclose($fp);
$test2=addslashes($content);
$q="INSERT INTO `matable`
(`XLS` )
VALUES
('$test2')";
mysql_query($q) or die(mysql_error());
}
} |
pour tester ce que donne le BLOB, je l'affiche et le stocke dans un fichier, de cette maniere :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
function mk_excel($content)
{
$fp=fopen('tttttttt.xls','rb');
fwrite($fp,$content,strlen($content));
fclose($fp);
}
header("Content-Type: application/vnd.ms-excel");
$blobContent=stripslashes(mysql_result(mysql_query("SELECT XLS FROM `evaluation` WHERE id='14' LIMIT 1"),0,'XLS'));
//valeur de ID edité a chaque fois... car phase test...
mk_excel($blobContent);
echo $blobContent;
die(); |
et avec tout ces bouts de codes, le resultat :
un fichier excel "auto telechargé" mais illisible ( binaire dans cellules )...
sur le serveur, un fichier excel nommé "tttttttt.xls"
qui fonctionne, mais avec 4alerts excel, disant que ~
" le fichier a été endommagé etc.... des macros et/ou formules peuvent manquer "
ensuite, il charge, et le fichier excel s'affiche...
mais pas comme il faut .. rajout d'une feuille "feuille 1" et contenu de feuille 1 origine mis dans feuille 2..