fhiiqm/test/download_file.php
author Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
Fri, 16 Nov 2012 10:40:03 +0100
changeset 32 c2d325791e24
parent 26 3c1e3ac7089f
permissions -rw-r--r--
+ Mitarbeiter - Telefon
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     1
<?php
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     2
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     3
//$file = "6_licht.jpg";
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     4
//chmod($file,0444); // Nutzer www-data nicht gestattet, da von root in 'fhiiqm/test' erstellt!
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     5
$file = $_SERVER["DOCUMENT_ROOT"] ."/fhiiqm/alprot/6_licht.JPG";
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     6
header ("Content-Type: application/force-download");
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     7
//header ("Content-Type: application/jpg");
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     8
//header('Content-Transfer-Encoding: binary');
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     9
header ('Content-Disposition: attachment; filename="licht.jpg"');
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    10
header("Content-Length: " . filesize($file));
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    11
readfile($file);
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    12
//$fp = fopen("$file", "rb");   // geht genau so
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    13
//fpassthru($fp);
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    14
exit;
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    15
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    16
function downloadFile( $fullPath ){
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    17
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    18
  // Must be fresh start
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    19
  if( headers_sent() )
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    20
    die('Headers Sent');
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    21
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    22
  // Required for some browsers
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    23
  if(ini_get('zlib.output_compression'))
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    24
    ini_set('zlib.output_compression', 'Off');
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    25
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    26
  // File Exists?
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    27
  if( file_exists($fullPath) ){
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    28
   
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    29
    // Parse Info / Get Extension
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    30
    $fsize = filesize($fullPath);
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    31
    $path_parts = pathinfo($fullPath);
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    32
    $ext = strtolower($path_parts["extension"]);
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    33
   
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    34
    // Determine Content Type
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    35
    switch ($ext) {
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    36
      case "pdf": $ctype="application/pdf"; break;
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    37
      case "exe": $ctype="application/octet-stream"; break;
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    38
      case "zip": $ctype="application/zip"; break;
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    39
      case "doc": $ctype="application/msword"; break;
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    40
      case "xls": $ctype="application/vnd.ms-excel"; break;
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    41
      case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    42
      case "gif": $ctype="image/gif"; break;
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    43
      case "png": $ctype="image/png"; break;
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    44
      case "jpeg":
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    45
      case "jpg": $ctype="image/jpg"; break;
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    46
      default: $ctype="application/force-download";
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    47
    }
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    48
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    49
    header("Pragma: public"); // required
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    50
    header("Expires: 0");
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    51
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    52
    header("Cache-Control: private",false); // required for certain browsers
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    53
    header("Content-Type: $ctype");
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    54
    header("Content-Disposition: attachment; filename=\"".basename($fullPath)."\";" );
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    55
    header("Content-Transfer-Encoding: binary");
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    56
    header("Content-Length: ".$fsize);
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    57
    ob_clean();
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    58
    flush();
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    59
    readfile( $fullPath );
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    60
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    61
  } else
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    62
    die('File Not Found');
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    63
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    64
}
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    65
//downloadFile("6_licht.jpg");
3c1e3ac7089f + csv-Dateien Laser, Vertrag, Raum
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    66
?>