bubble: Dateityp / Nime-Typ überschreiben

Beitrag lesen

Einen unbekannten MIME-Type zu schicken, find ich ziemlich schmutzig.

IMO wäre es besser Content-Disposition entsprechend zu setzen.
»An opportunity to raise a "File Download" dialogue box for a known MIME type with binary format or suggest a filename for dynamic content. Quotes are necessary with special characters.«

Für Variante 1 bzw 2 bräuchte man da wohl mod_headers.

Variante 3:

<?php

Anpassen:

define('DOWNLOAD_DIR', '/srv/www/downloads/');
define('MIME_TYP', 'bin/unknown');

s.o.  
  

> ~~~php

 if (! isset($_GET['filename'])) {  

>      header('HTTP/1.1 404 NOT FOUND');  
>      header('Content-Type:text/html');  
>      print '<h1>Es fehlen Informationen.</h1>';  
>      exit;  
> }

400 Bad Request ist wohl zutreffender.

$filename=DOWNLOAD_DIR . str_replace('..', $_GET['filename']);

if (is_file($filename) && is_readable($filename)) {
     header('Content-Type: ' . MIME_TYP);
     passthru($filename);
     exit;
} else {
     header('HTTP/1.1 404 NOT FOUND');
     header('Content-Type:text/html');
     print '<h1>Nicht gefunden!</h1>';
     exit;
}

Hier würde ich wohl auch noch mal unterscheiden, ob die Datei existiert (404 Not Found), oder ob der Server sie nicht lesen kann, aus welchm Grund auch immer (500 Internal Server Error)  
(Verzeichnisse würde ich persönlich mit 400 Bad Request beantworten, es sei dann man will Archive des kompletten Verzeichnisses verschicken)  
  
MfG  
bubble

-- 
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye