Hallo zusammen,
ich hab da wieder ein Problem, das für mich ein bisschen schwer zu lösen wird, da ich weder einen Mac noch das OS irgendwo laufen hab...
Ich habe diesen Dateidownload:
PHP
$ext = fileext( basename( $_GET['file'] ) );
if( isset( $_GET['download'] ) )
$disposition = 'attachment';
else {
$disposition = 'inline';
$_GET['file'] = utf8_decode( $_GET['file'] );
}
switch( $ext ) {
case 'pdf':
$len = filesize($_SERVER['DOCUMENT_ROOT'].$_GET['file']);
header('Expires: Thu, 19 Nov 1981 08:52:00 GMT');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: no-cache');
header("Content-Type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: ".$disposition."; filename=".basename($_GET['file']));
readfile($_SERVER['DOCUMENT_ROOT'] . $_GET['file']);
exit;
/* Alle anderen Cases schauen genau gleich aus, nur mit anderem Mimetype, passend zur Fileextension... */
}
Alles anzeigen
Das funktioniert super unter Win, im Mac wird (zumindest bei der PDF, und da nur der Mimetype überall anders ist, schätze ich, dass das überall so ist) eine 0-Byte-Datei an den Browser gesendet.
Zur Information der Zeilen:
PHP
if( isset( $_GET['download'] ) )
$disposition = 'attachment';
else {
$disposition = 'inline';
$_GET['file'] = utf8_decode( $_GET['file'] );
}
Es geht weder wenn isset( $_GET['download'] ) == true noch false ist...
Lg
Mathias