$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 написал(а):
Блин еле исправил проблема оказывается была в том что ф-ция filesize() почемуто размер всех файлов считает "с запасом" в 3 байта и следовательно браузеру передается неверная информация о размере файла и поэтому загрузка доходит до 99% и останавливается т.к браузер видит что вроде еще есть продолжение файла а он то на самом деле уже скачался!!!!
Теперь вопрос почему эта ф-ция считает везде по разному например когда я тестировал на своем компьютере размер файла вообще получался на 10байт меньше и файл получался битым т.к браузер просто не докачивал эти 10 байт
Теперь вопрос почему эта ф-ция считает везде по разному например когда я тестировал на своем компьютере размер файла вообще получался на 10байт меньше и файл получался битым т.к браузер просто не докачивал эти 10 байт
Спустя 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. |