Alors voilà une ligne de commande (sous linux) qui permet de détecter le type MIME d’un fichier.
<?php
$filename="monimage.png";
$type=exec("file -i -b $filename");
echo $type;
//Affiche : image/png
?>
Vous me direz OK c’est simple… mais quel intérêt ?
Et là je vous dis… admettons qu’il y a un répertoire ou vous stockez des fichiers.
Ce répertoire vous ne souhaitez pas que vos visiteurs puissent le parcourir ou accéder à ses fichiers directement.
Alors vous placez un fichier .htaccess dans votre répertoire interdisant à tout le monde d’y accéder.
Contenu du fichier .htaccess :
<Limit GET POST> deny from all </Limit>
Ensuite voilà comment notre code d’identification de type MIME va être utile
Pour envoyer un fichier du répertoire inaccessible, nous allons via Apache créer une copie d’un des fichiers à mettre à disposition et l’envoyer au navigateur
Voilà à quoi peut ressembler le code :
<?php
$filename="monimage.png";
//Lecture du contenu du fichier que l'on place dans une variable $content
$fp = fopen ($filename, 'r');
$content = fread($fp, filesize($filename));
fclose ($fp);
//Récupération du type de fichier
$type=exec("file -i -b $filename");
//Construction des en-têtes du fichier pour que le navigateur comprenne ce qu'on lui envoi (un fichier image)
header('Content-Type: '.$type);
header('Content-Disposition: inline; filename="'.basename($filename).'"');
//Affichage du contenu du fichier
echo $content;
Voilà ce genre de code peut un jour être utile alors je vous le laisse
