ok, i made adjustments and it dont work.
using
readfile()
causes that no filetype works.
and if i use
header( 'Content-Length: ' . filesize($a['length']));
same result.
here is my full scrpt, it works for pdf and php files, dont work for any image or rar etc
if(isset($_GET["id"])){
$id = $_GET["id"];
$q = db_q("SELECT `data`, `nazev`, `typ`, length(`data`) as length FROM `mailing_files` WHERE `soubor_id` = '$id'", "databaze-kontaktucom_dataserver");
}
else if(isset($_GET["nazev"])){
$nazev = $_GET["nazev"];
$q = db_q("SELECT `data`, `nazev`, `typ`, length(`data`) as length FROM `mailing_files` WHERE `nazev` = '$nazev'", "databaze-kontaktucom_dataserver");
}
if(mysql_num_rows($q) == 1){
$a = mysql_fetch_assoc($q);
header( 'Content-Description: File Transfer'); // no effect but dont causes error
header( 'Content-Type: '.$a["typ"]);
//header('Content-Type: application/octet-stream'); // no effect
header( 'Content-Disposition: attachment; filename='.$a["nazev"]);
//header( 'Content-Length: ' . filesize($a['length'])); // causes error
//header('Pragma: public'); // no effect
//header('Expires: 0'); // no effect
//header('Content-Transfer-Encoding: binary'); // no effect
//header('Content-Transfer-Encoding: base64'); // no effect
//ob_clean(); // no effect
//flush(); // no effect
//readfile($a['data']); // causes error
echo base64_decode($a["data"]); // works best so far
//echo $a["data"]; // just print
}
exit;