When trying to host an APK file on my server I was able to get it to download fine – but I was not able to get the file size to show in the download – including showing the download percentage.
To fix this problem we need to do the steps below:
1. Disable GZIP compression for APK files, the easiest is to set it in the Apache – httpd.conf file
2. Add APK as a file type in .htaccess for the specific server
3. For PHP download you might also need to set the appropriate headers
1. In httpd.conf find and add apk – I added it after the RAR type
# Don't compress files that are already compressed
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar|apk)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.(?:avi|mov|mp3|mp4|rm|flv|swf|mp?g)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .pdf$ no-gzip dont-vary
I also read that you could simple add the following line to .htaccess in your server if you did not have access to the Apache server config – but I did not test this
<FilesMatch "\.(apk)$"> SetEnv no-gzip dont-vary </FilesMatch>
2. Then in .htaccess for the specific server add the apk as a type as below
AddType application/vnd.android.package-archive apk
3. Set appropriate PHP headers in download scripts.
$file = '/yourlocation/application.apk'; //not public folder
$fileSize = filesize($file);
         if (file_exists($file)) {
             header('Content-Description: File Transfer');
             header('Content-Type: application/vnd.android.package-archive');
             header('Content-Disposition: attachment; filename='.basename($file));
             header('Content-Transfer-Encoding: binary');
             header('Expires: 0');
             header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
             header('Pragma: public');
             header('Content-Length: ' . $fileSize);
             ob_clean();
             flush();
             readfile($file);
             exit;
         }
SOLVED: APK download file size not shown – no download percentage – SetEnv – htaccess – PHP Content-Length – Apache Server – CentOS
            
               
haha.. it’s works for me.