HalkaR, Я вот так сделал... Вроде работает...
| Код | function ExportHeader($ExportFileName){ if(ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER["HTTP_USER_AGENT"], $log_version)) { define('USR_BROWSER_VER', $log_version[1]); define('USR_BROWSER_AGENT', 'IE'); } elseif (ereg('Opera(/| )([0-9].[0-9]{1,2})', $_SERVER["HTTP_USER_AGENT"], $log_version)) { define('USR_BROWSER_VER', $log_version[2]); define('USR_BROWSER_AGENT', 'OPERA'); } elseif (ereg('OmniWeb/([0-9].[0-9]{1,2})', $_SERVER["HTTP_USER_AGENT"], $log_version)) { define('USR_BROWSER_VER', $log_version[1]); define('USR_BROWSER_AGENT', 'OMNIWEB'); } elseif (ereg('Mozilla/([0-9].[0-9]{1,2})', $_SERVER["HTTP_USER_AGENT"], $log_version)) { define('USR_BROWSER_VER', $log_version[1]); define('USR_BROWSER_AGENT', 'MOZILLA'); } elseif (ereg('Konqueror/([0-9].[0-9]{1,2})', $_SERVER["HTTP_USER_AGENT"], $log_version)) { define('USR_BROWSER_VER', $log_version[1]); define('USR_BROWSER_AGENT', 'KONQUEROR'); } else { define('USR_BROWSER_VER', 0); define('USR_BROWSER_AGENT', 'OTHER'); } $export_file = explode(".", $ExportFileName); if(preg_match("/pdf/i", $export_file[sizeof($export_file)-1])) $mime_type = "application/pdf"; elseif (preg_match("/zip/i", $export_file[sizeof($export_file)-1])) $mime_type = "application/zip"; elseif (preg_match("/rar/i", $export_file[sizeof($export_file)-1])) $mime_type = "application/x-rar-compressed"; elseif (preg_match("/doc/i", $export_file[sizeof($export_file)-1])) $mime_type = "application/msword"; elseif (preg_match("/xls/i", $export_file[sizeof($export_file)-1])) $mime_type = "application/msexcel"; else $mime_type = (USR_BROWSER_AGENT == 'IE' || USR_BROWSER_AGENT == 'OPERA') ? 'application/octetstream' : 'application/octet-stream'; header("Content-Type: $mime_type"); if (USR_BROWSER_AGENT == 'IE') { header("Content-Disposition: inline; filename=$ExportFileName"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: public"); } else { header("Content-Disposition: attachment; filename=$ExportFileName"); header("Expires: 0"); header("Pragma: no-cache"); } }
$query = "SELECT `$filenamefield`, `$filedatafield` FROM `competitions` WHERE `id`=$id";
$result = mysql_query($query); if (mysql_num_rows($result) <> 1) { die("Файл не найден. Скачивание невозможно."); }
$filerecord = mysql_fetch_array($result); ExportHeader($filerecord[$filenamefield]); header("Accept-Ranges: bytes"); header("Content-Length: " . strlen($filerecord[$filedatafield]) );
echo $filerecord[$filedatafield];
|
Пойдет? |