Прямо сейчас у меня есть функция, которая берет мой загруженный файл, проверяет расширение, и если он соответствует массиву допустимых расширений, он обрабатывается. Это импортер списка контактов.Ограничить допустимые типы загрузки файлов PHP
Что мне нужно выяснить, так это убедиться, что файл (в данном случае .csv) на самом деле то, что он говорит (например, не файл excel, который только что переименован в .csv).
Наши серверы работают PHP 5.2.13
Вот текущая функция проверки я
public static function validateExtension($file_name,$ext_array) {
$extension = strtolower(strrchr($file_name,"."));
$valid_extension="FALSE";
if (!$file_name) {
return false;
} else {
if (!$ext_array) {
return true;
} else {
foreach ($ext_array as $value) {
$first_char = substr($value,0,1);
if ($first_char <> ".") {
$extensions[] = ".".strtolower($value);
}
else {
$extensions[] = strtolower($value);
}
}
foreach ($extensions as $value) {
if ($value == $extension) {
$valid_extension = "TRUE";
}
}
if ($valid_extension==="TRUE") {
return true;
} else {
return false;
}
}
}
}
EDIT: Я сейчас пытаюсь сделать
exec('file -ir '.$myFile)
Когда я запускаю эту команду в терминале, мне дают полезный ответ. Когда я запускаю ту же команду через php, мне дают что-то другое. Любые идеи почему? Я пробовал это с помощью exec, passthru, shell_exec. И сервер не работает в безопасном режиме.
читатель php excel может помочь вам решить, является ли загруженный файл файлом .xls или нет (PHP-ExcelReader @ http://sourceforge.net/projects/phpexcelreader/files/) – Andreas