cześć,
mam na stronce skrypt downloadu, który działa na każdej przeglądarce z wyjątkiem IE 8 exclamation.gif!
Kiedy pobieram plik (np. PNG) na dysk i chce go potem otworzyć pojawia się "Podgląd niedostępny." - plik choć ma koło 2 MB po pobraniu na dysk ma 0 KB.
Poniżej zamieszczam skrypt, prosze o pomoc.

Przykładowy link w adresie przeglądarki który wywołuje skrypt downloadu:

  1. http://www.mojastrona.pl/?p=1&file=4234345600.png


A poniżej skrypt:

  1. <?php
  2.  
  3. $file = $_GET['file'];
  4.  
  5. if (file_exists('download/'.basename($file)) && $file!= '')
  6. {
  7.  
  8. $file = 'download/'.basename($file);
  9. $file_explode = explode(".",$file);
  10.  
  11.  
  12. switch( $file_explode[1] )
  13. {
  14.  
  15. case "jpeg":
  16. $ctype="image/jpg";
  17. break;
  18.  
  19. case "jpg":
  20. $ctype="image/jpg";
  21. break;
  22.  
  23. case "png":
  24. $ctype="image/png";
  25. break;
  26.  
  27. case "gif":
  28. $ctype="image/gif";
  29. break;
  30.  
  31. case "pdf":
  32. $ctype="application/pdf";
  33. break;
  34.  
  35. case "swf":
  36. $ctype="application/x-shockwave-flash";
  37. break;
  38.  
  39. case "zip":
  40. $ctype="application/zip";
  41. break;
  42.  
  43. case "rar":
  44. $ctype="application/rar";
  45. break;
  46.  
  47. }
  48.  
  49. header('Content-Description: File Transfer');
  50. header('Content-Type: application/octet-stream');
  51. header('Content-Disposition: attachment; filename='.basename($file));
  52. header('Content-Transfer-Encoding: binary');
  53. header('Expires: 0');
  54. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  55. header('Pragma: public');
  56. header('Content-Length: ' . filesize(basename($file)));
  57. flush();
  58. readfile($file);
  59.  
  60. }
  61.  
  62. ?>