function download($id)
{
$q = $this->db->query("SELECT * FROM files WHERE id={$id}");
$result = $q->FetchRow();
if (file_exists($this->filepath.$result["hash"]))
{
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $result["fnmae"]);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($this->filepath.$result["hash"]));
// читаем файл и отправляем его пользователю
if ($fd = fopen($this->filepath.$result["hash"], 'rb')) {
while (!feof($fd)) {
print fread($fd, 1024);
}
fclose($fd);
}
exit;
}
else
return 404;//не найдено
}
причем, файлы с кодировкой utf-8 возвращает преспокойно и без "битостей". Сайт весь в UTF-8, главная страница без BOM.
Как только не бился и не пытался, не могу понять, что делаю не так.