Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: примитивный прокси убыстрить
Покинул форум
Сообщений всего: 15
Дата рег-ции: Сент. 2010 Откуда: Раменское
Помог: 0 раз(а)
работает такой код на сайте - берет файл с удаленного фтп и отдает его посетителю сайта. сделано все так, что сначала загружает файл, потом его передает пользователю, и после у себя удаляет (хостинг по размеру ограничен). Получается если файлы более весомые - уже больше 20 мб, (а там будет до 60 мб.) то пользователь нервно замечает задержку между нажатием на ссылку и началом скачивания.
Просьба - подскажите как можно начать отдачу файла не дожидаясь окончания загрузки его на хостинг?и на файлах около 50 мб он ждет загрузки на хостинг, но немного не дожидаясь сообщает что страница не найдена - думаю по причине что есть лимит на ожидание ответа.
вот код ключевой части скрипта:
Покинул форум
Сообщений всего: 15
Дата рег-ции: Сент. 2010 Откуда: Раменское
Помог: 0 раз(а)
фтп не должны знать, на сайте регистрируются пользователи и они могут скачивать отведенные им файлы. а фтп отдельно - хостер не дает места для хранения файлов. если делать прямые ссылки то тогда синхронно с сайтом нужно и на фтп менять права и список пользователей, иначе будут качать и что им можно и что нельзя. Я решил сделать это через скрипт.
Viper пишет:
Отдавайте файл кусками.
да, попробую. (Добавление)
как забирать файл с фтп частями? не могу пока найти решение, подскажите плз
densk
Отправлено: 22 Ноября, 2010 - 12:36:25
Новичок
Покинул форум
Сообщений всего: 15
Дата рег-ции: Сент. 2010 Откуда: Раменское
Помог: 0 раз(а)
отдавать по частям научился а забирать как? если фаил большой и скачивание уже занимает более 30-60 секунд то сервер обрывает работу скрипта
DlTA
Отправлено: 22 Ноября, 2010 - 14:10:45
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
странно
сервер обрывает обычно обрывает если там 30-60 секунд вычислений,
а если это время занимает скачка или отдача но нет
у меня сервер так отдавал 15 минут, хотя таймаут 60 секунд))
OrmaJever
Отправлено: 22 Ноября, 2010 - 14:20:04
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
densk пишет:
если фаил большой и скачивание уже занимает более 30-60 секунд то сервер обрывает работу скрипта
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
JustUserR
Отправлено: 22 Ноября, 2010 - 20:27:38
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
densk В качестве возможного варинта решения вашей задачи целесообразно использование блочной загрузки файла из целевого FTP-сервера и выполнения его параллельной передачи пользователю с требуемой буферизаций - для осуществления решения такой задачи в условиях выполнения приложения в едином потоке - достаточно обеспечить реализацию общего цикла в пределах которого будет производиться получение необхомого информационного блока из FTP-сервера и последующая передача его пользователю В качестве требуемых технических аспектов для решения - необходимо проведение защиты от опустошения внутреннего буфера и реализация передачи информации целевому пользователю без дополнительной задержки системы вывода - кроме того указанный поход обеспечивает возможность реализации предложенного вами алгоритма без необходимости временного сохранения файлов на сервер
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.