Alors j'ai couru dans la présente aujourd'hui.
A été de tenter de valider un fichier CSV téléchargé MIME type en regardant $_FILES['upload_file']['type']
, mais pour certains utilisateurs sur les différents navigateurs (et pas nécessairement les mêmes navigateurs entre les utilisateurs; par exemple, il a bien fonctionné pour moi dans FF, mais pour un autre utilisateur, il ne fonctionne pas sur FF) de l' $_FILES['upload_file']['type']
a été à venir comme "application/vnd.ms-excel" à la place de l' "text/csv" ou "text/plain".
J'ai donc eu recours à l'aide de l' (à mon humble avis) beaucoup plus fiable finfo_* fonctions quelque chose comme ceci:
$acceptable_mime_types = array('text/plain', 'text/csv', 'text/comma-separated-values');
if (!empty($_FILES) && array_key_exists('upload_file', $_FILES) && $_FILES['upload_file']['error'] == UPLOAD_ERR_OK) {
$tmpf = $_FILES['upload_file']['tmp_name'];
// Make sure $tmpf is kosher, then:
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($finfo, $tmpf);
if (!in_array($mime_type, $acceptable_mime_types)) {
// Unacceptable mime type.
}
}