Ако скрипт инициализира download, има ли начин скрипта да се разбере дали юзера (от страна на клиента/браузера) е натиснал [OK] и е свалил файла или е натиснал [Cancel/X] и е отказал свалянето?
Имам следното на PHP, което си работи без проблеми.
GeSHi (PHP):
- function shutdown(){ 
- { 
- //code for aborted connection 
- }  
- else  
- { 
- //code for succesfull download 
- } 
- } 
-   
-   
- header("Content-Type: text/x-delimtext; name=\"$file_name\"")- ; 
 
- header("Content-disposition: attachment; filename=$file_name")- ; 
 
-   
- .. 
- printf ("-- backup successfully finished at %s --\n", date("j-F-Y H:i:s", time()))- ; 
 
- } 
-   
проблема е че след последният 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