[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: скачивание файлов через readfile
dsa
Вобщем у меня скачивание файла пороисходит примерно таким образом
$size = filesize($adres);
header('Content-Type: application/octetstream');
header('Content-Length: ' . $size);
header('Content-Disposition: attachment; filename=' . $filename);
readfile($adres);

Но это работает как то не корректно т.е сам файл то скачивается нормально но в браузере пишет ошибку скачивания :) подозреваю что это из-за того что отсылаются неверные заголовки
так вот не подскажите как сделать правильно?



Спустя 2 минуты, 56 секунд (22.05.2011 - 20:34) neadekvat написал(а):
Из заголовков можно добавить разве что
header('Content-Description: File Transfer');


Ошибка в любом браузере при любом файле?

Спустя 2 минуты, 58 секунд (22.05.2011 - 20:37) dsa написал(а):
neadekvat файлы zip и jar пробовал а браузер опера

Спустя 1 минута, 12 секунд (22.05.2011 - 20:38) neadekvat написал(а):
Попробуй в других браузерах.

Спустя 16 часов, 27 минут, 38 секунд (23.05.2011 - 13:05) dsa написал(а):
Блин еле исправил biggrin.gif проблема оказывается была в том что ф-ция filesize() почемуто размер всех файлов считает "с запасом" в 3 байта и следовательно браузеру передается неверная информация о размере файла и поэтому загрузка доходит до 99% и останавливается т.к браузер видит что вроде еще есть продолжение файла а он то на самом деле уже скачался!!!!
Теперь вопрос почему эта ф-ция считает везде по разному например когда я тестировал на своем компьютере размер файла вообще получался на 10байт меньше и файл получался битым т.к браузер просто не докачивал эти 10 байт blink.gif

Спустя 3 часа, 44 минуты, 5 секунд (23.05.2011 - 16:49) Nikitian написал(а):
Может потому что
Цитата

    Note: Because PHP's integer type is signed and many platforms use 32bit integers, filesize() may return unexpected results for files which are larger than 2GB. For files between 2GB and 4GB in size this can usually be overcome by using sprintf("%u", filesize($file)).

А может и из-за этого:
Цитата

    Note: The results of this function are cached. See clearstatcache() for more details.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.