[ xkolja @ 10.04.2016. 21:27 ] @
Imam ovakav problem i nemogu da ga rešim.
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; 
    ?>    

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

[ VladaSu @ 12.04.2016. 08:39 ] @
Koji encoding ti je tabela i koji encoding ti je konekcija?
[ xkolja @ 24.05.2016. 19:15 ] @
E, ovo mi baš i nije jasno
na tabeli piše latin1_swedish_ci,
a u konekciji mysql_query("SET NAMES 'utf8'");

samo polje je mediumblob i ništa više
gde to mogu da pogledam?
[ bane1234 @ 24.05.2016. 19:26 ] @
Ovo set names utf8 ti postavlja encoding konekcije... Nema veze sa tabelama.
I naravno,ukoliko mozes, nemoj cuvati fajlove direkt u bazi,mozes samo putanje do istih.
[ VladaSu @ 03.06.2016. 08:00 ] @
Enkoding konekcija nema veze sa tabelama ali ima sa podacima u tabeli jer mysql radi konvertovanje iz lating1 u utf8 i tu zabrlja.
Prebaci tabelu u utf-8.
Da, gledaj da fajlove ne cuvas u bazi.