Титла: Детектване на успешен даунлоад на файл от скрип Публикувано от: Naka в Oct 30, 2009, 10:32 Ако скрипт инициализира download, има ли начин скрипта да се разбере дали юзера (от страна на клиента/браузера) е натиснал [OK] и е свалил файла или е натиснал [Cancel/X] и е отказал свалянето?
Имам следното на PHP, което си работи без проблеми. Код
проблема е че след последният printf и flush() скрипта вече е изпратил всичко и завършва изпълнението си, (което изгрлежда се е буферирало от apache-то и от браузера). И според скрипта Download-а е успешен - но при клиента може все още да стои отворен прозорец за 'Save File' и клиента още не е натиснал нито OK нито Cancel/X. Ако сега той натисне Cancel/X ще откаже файла, но според PHP сървера вече всичко си е изпратил и download-a си е успешен. Има ли начин това да се детектне? Някакъв друг http header? Изобщо възможно ли е това според http протокола? Това горното работи и детектва отказан download само ако клиента натисне Cancel/X през времето писане на файла. Но в общият случай скрипта завършва много по бързо от реакцията на юзера. http://bg.php.net/manual/bg/features.connection-handling.php Титла: Re: Детектване на успешен даунлоад на файл от скрип Публикувано от: foxb в Oct 30, 2009, 14:03 Проблема ти идва от това, че Firefox започва да сваля файла още преди потребителя да е казал къде.
За да получиш нужната информация може би ще трябва да създадеш джава аплет, който да се грижи за записването и да ти връща статуса. Титла: Re: Детектване на успешен даунлоад на файл от скрип Публикувано от: Naka в Oct 30, 2009, 15:15 Проблема ти идва от това, че Firefox започва да сваля файла още преди потребителя да е казал къде.Сигурно е това. Откъде се задава Firefox да не се държи по-този начин. Търсих много и нищо не намерих. Спомням си че много одавна не беше така. Tова е отвартителна опция от страна на firefox. Заради това сигурно хиляди броячи в инернет за свалени файлове показват с 200% повече сваляния. Тук намерих подобно полакване: http://forums.mozillazine.org/viewtopic.php?t=372079 За да получиш нужната информация може би ще трябва да създадеш джава аплет, който да се грижи за записването и да ти връща статуса.Положително няма да правя никакви джави, но какво имаш в предвид? Къде трябва да работи този апплет и как? при извикване на скрипта сървера изпраща на клиента Content-disposition: attachment; filename=xxx и това е. Титла: Re: Детектване на успешен даунлоад на файл от скрип Публикувано от: foxb в Oct 31, 2009, 05:11 Честно казано и аз не знам откъде да се спре това...
Колкото до джавата то е като във вица с лимонадата като противозачатъчно не преди или след а вместо. т.е. използваш джавата за сваляне а не браузъра. |