Imam tabelu MySQL-u i njoj polje FILED tipa MEDIUMBLOB. U to polje hoću da sačuvam različite dokumente tipa *.doc, *.docx, *.pdf i tako dalje. Kada uploadujem dokument u tabelu sve je u redu.
Sadržaj koji se sačuva u polje je ispravan. To znam jer kad downloadujem sadržaj polja FILED pomoću PHPMyAdmion dobijem datoteku "jnfiles-filed.bin", kojoj kad promenim to bin u doc ponaša se ka word dokument i u njoj piše to što treba.
Isto i kada sadržaj polja, pomoću naredbe file_put_contents('dokument.doc', $filed); zapišem u filesystem servera dobijem ispravan MS-WORD dokument.
Ali
Kada sadržaj polja FILED downloadujem pomoću koda:
Code:
<?php
$con = mysql_connect("localhost", "xxxxxxxxxxxx", "xxxxxxxx")or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
mysql_select_db("direkcij_baza") or die(mysql_error());
$jnfiles = mysql_query("SELECT filename, fileext, size, filed FROM jnfiles WHERE id='$_GET[id]' and stavka='$_GET[stavka]'");
list($filename, $fileext, $size, $filed) =mysql_fetch_array($jnfiles);
header("Content-length:$size");
header("Content-type:$fileext");
header("Content-Disposition: attachment; filename=$filename");
//header("Content-transfer-encoding: binary");
//file_put_contents('dokument.doc', $filed);
echo $filed;
?>
<?php
$con = mysql_connect("localhost", "xxxxxxxxxxxx", "xxxxxxxx")or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
mysql_select_db("direkcij_baza") or die(mysql_error());
$jnfiles = mysql_query("SELECT filename, fileext, size, filed FROM jnfiles WHERE id='$_GET[id]' and stavka='$_GET[stavka]'");
list($filename, $fileext, $size, $filed) =mysql_fetch_array($jnfiles);
header("Content-length:$size");
header("Content-type:$fileext");
header("Content-Disposition: attachment; filename=$filename");
//header("Content-transfer-encoding: binary");
//file_put_contents('dokument.doc', $filed);
echo $filed;
?>
onda dobijem neispravan fajl koji izgleda ovako:
Code:
��#ࡱ#�################;###�� #####################################����########���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
��#ࡱ#�################;###�� #####################################����########���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
Sa greškom dobijam dokumente tipa *.zip, *.xls.
Dokumenti tipa *.PDF su ispravni.
Probao sam kako to radi na UBUNTU 14.04 LTS, DEBIAN 7 wheezy i Windows XP i radi isto. U svim sistemima browser je Mozilla Firefox.
Ja ne znam u čemu je problem. Najverovatnije da se greška desi prilikom transfera ili prilikom snimanja fajla na računaru gde se downloaduje.
Pomagajte, ko je radio tako nešto