Autor Zpráva
Crempa
Profil *
Zdravím,
v databázi mám uložené bin. soubory (MEDIUMBLOB) které přes PHP načtu a pošlu na výstup jako soubor ke stažení (viz. ukázkový zdroják). Problém je že když si stažený soubor na požítači prohlédnu tak proti originálu uloženému v databázi se nakonec přidají 3 bajty a to konkrétně HEX sekvene 0A 0A 0A. Jinak jsou soubory naprosto indentické. Pokud místo odeslání prohlížeči uložím soubor na disk serveru přes file_put_contents tak je vše v pořádku a obsahově přesně odpovídá tomu v databázi. Netušíte kde by mohl být zakopanej pes příp. co znamené ona 0A sekvence.. ?

Diky

kod:


//nacteni dat z dbs soubor je v $router_data['backup']
$query = "SELECT............"

file_put_contents("....cesta.....",$router_data['backup']); //ulozeny soubor je OK


//odesleme hlavicky o prenosu souboru
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"$backup_name.backup\"");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
echo $router_data['backup']; //prijaty soubor ma na koncu 0A sekvenci


PS: ta maskarada s hlavickama je tam kvuli IE, pokud toho pulku odstranim a necham tam jen ty potrebne tak to i ve firefoxu ulozi tu sekvenci navic...
tiso
Profil
0A = LF čo je v unixových systémoch znak odriadkovania... takže niekde tam máš 3x odriadkovanie... napríklad:

?>



<?php
Crempa
Profil *
Mas pravdu, zdrojak mam ve vice souborech a do toho posledniho se "vetrelo" par radku navic... :)
Dik moc
Toto téma je uzamčeno. Odpověď nelze zaslat.

0