| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > Бьются файлы при закачки с сервера |
| Автор: shootnix 22.5.2008, 17:44 | ||
| Приветствую. Проблема, похоже, мистическая Суть: на сервере имеется хранилище файлов, все они — zip-архивы. Пользователь скачивает любой файл, который захочет, через скрипт. Иными словами, существует скрипт, который все эти файлы раздает. На входе zip-ы целые, открываются, распаковываются. На выходе, при сохранении скачанного файла, происходит следующее: архив выглядит вполне целым, весит столько же и содержит ту же структуру. Однако, при попытке его распаковать, архиватор ругается на неожиданный конец архива. То есть, файл каким-то каком или недокачивается, или перекачивается (добавляются левые символы?) Вот код Perl, с помощью которого отдаю файл пользователю:
Ткните носом, плиз, очень нужно! Добавлено через 2 минуты и 11 секунд Да, забыл добавить, что binmode( $fd ) уже пробовал убрать, но проблему это не решило. |
| Автор: ginnie 22.5.2008, 17:52 |
| shootnix, советую сделать diff на пару файлов, чтобы узнать, в чем они не совпадают. Может еще попробовать binmode(STDOUT)? |
| Автор: KSURi 22.5.2008, 17:59 | ||
| Попробуйте заменить на
Добавлено через 14 секунд опоздал) |
| Автор: shootnix 22.5.2008, 18:06 |
| Попробовал. Ничего существенного не изменилось. Только тормозить стал. Недокачивается последние несколько байт файла, может, даже последний байт вообще. В остальном, файлы идентичные. На сервере тоже граблей не обнаружено, запускал на локальном под Виндовз и на удаленном под Линукс. |
| Автор: ginnie 22.5.2008, 18:34 | ||||
shootnix, я бы сделал следующее:
если размер совпадает, дело явно не в скрипте. Добавлено через 9 минут и 20 секунд В бинарный режим надо переводить оба потока:
|
| Автор: shootnix 22.5.2008, 19:28 |
| Точно |