Witam

Mam dziwny problem z pobieranie plików przez header
Nie pobiera rozmiaru pliku tak jak powinno, piszę że plik zajmuję -1 B a powinno pisać 9 MB zależy jaki plik chce pobrać ale i tak zawszę piszę -1 B


Dodam jeszcze że na localhost działa normalnie to już nie wiem co jest nie tak, kombinowałem już długo i postanowiłem się do was zgłosić a i plik po pobraniu jest pobrany w całości bez błędnie problem leży gdzieś na filesize


kod php
  1. <?php
  2. $filename = $_GET['file_id'];
  3.  
  4. if(ini_get('zlib.output_compression'))
  5. ini_set('zlib.output_compression', 'Off');
  6.  
  7.  
  8. $file_extension = strtolower(substr(strrchr($filename,"."),1));
  9.  
  10. if($filename=="")
  11. {
  12. echo "Error: nie wybrano pliku do pobrania.";
  13.  
  14. }
  15. elseif (!file_exists($filename))
  16. {
  17. echo "Error: Nie znaleziono pliku.";
  18.  
  19. };
  20.  
  21. switch($file_extension)
  22. {
  23. case "pdf": $ctype="application/pdf"; break;
  24. case "exe": $ctype="application/octet-stream"; break;
  25. case "zip": $ctype="application/zip"; break;
  26. case "doc": $ctype="application/msword"; break;
  27. case "xls": $ctype="application/vnd.ms-excel"; break;
  28. case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  29. case "gif": $ctype="image/gif"; break;
  30. case "png": $ctype="image/png"; break;
  31. case "jpeg":
  32. case "jpg": $ctype="image/jpg"; break;
  33. default: $ctype="application/force-download";
  34. }
  35. header("Pragma: public");
  36. header("Expires: 0");
  37. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  38. header("Cache-Control: private",false);
  39. header("Content-Type: $ctype");
  40.  
  41. header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
  42. header("Content-Transfer-Encoding: binary");
  43. header("Content-Length: ".filesize($filename));
  44. readfile("$filename");
  45.  
  46. ?>