|
|
|
| использую код
$fd = fopen($filename, "r");
if (!$fd){
header ("HTTP/1.0 403 Forbidden");
exit;
}
$content = fread($fd, filesize($filename));
fclose($fd);
$str="Content-Disposition: attachment; filename=" .$_GET['file'];
header($str);
header("Content-type: application/octet-stream");
print $content;
|
на файлах до 100 Мб все работает, на файле 200 Мб выдает 502-ю ошибку (Bad Gateway)
напрямую файл скачивается на ура | |
|
|
|
|
|
|
|
для: P@Sol
(09.06.2010 в 10:11)
| | возможно в настройках стоит не больше 100мб? | |
|
|
|
|
|
|
|
для: sl1p
(09.06.2010 в 10:38)
| | сбой происходит на строке
$content = fread($fd, filesize($filename));
|
| |
|
|
|
|
|
|
|
для: P@Sol
(09.06.2010 в 11:13)
| | Используйте readfile(). | |
|
|
|
|
|
|
|
для: Саня
(09.06.2010 в 11:43)
| | все осталось по прежнему
<?
if(file_exists($filename))
{
/* If the visitor is not a search engine, count the downoad: */
if(!is_bot())
$str="Content-Disposition: attachment; filename=" .$_GET['file'];
header($str);
header("Content-type: application/octet-stream");
readfile($filename);
exit;
}
|
| |
|
|
|
|
|
|
|
для: P@Sol
(09.06.2010 в 11:59)
| | Сомнения вызывает только условие if(!is_bot()), которое действует только на $str="Content-Di... | |
|
|
|
|
|
|
|
для: Саня
(09.06.2010 в 12:28)
| | да) ошибка, но на вывод она никак не влияет...что делать???( | |
|
|
|
|
|
|
|
для: P@Sol
(09.06.2010 в 10:11)
| | в код добавил следующую функцию
<?
function readfile_chunked ($filename) {
$chunksize = 1*(1024*1024); // how many bytes per chunk
$buffer = '';
$handle = fopen($filename, 'rb');
if ($handle === false) {
return false;
}
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
print $buffer;
}
return fclose($handle);
}
|
| |
|
|
|