1)ob_start("ob_gzhandler", 4096);// that is failed because the buffer size less than the file size.
2) ob_start("ob_gzhandler", 409600);// that is success because the buffer size more big than the file size.
3)ob_start("ob_gzhandler");// that is success because the buffer size is not limited.
We should not add ob_start here,because if download big file ,it will cost many memory buffer of server.
If we use the two php functions which are session_start and date_default_timezone_set ,our downloading process will be failed,if we only use any one of them,our downloading process will be success,it is very strange.