Я создаю загрузчик для фотосайта, большинство загружаемых фотографий имеют тип 1232132_1231231_12.jpg. когда я запускаю pathinfo(), я получаю пустые выходы для расширения.Не удалось получить расширение файла при использовании pathinfo()
Вот мой код
$target_dir = "Photos/";
$species = filter_input(INPUT_POST, 'species');
$country = filter_input(INPUT_POST, 'country');
$type= filter_input(INPUT_POST, 'type');
include_once 'connection.php';
echo $target_dir . basename($_FILES["file"]["name"]);
for($a=0;$a<count($_FILES['file']['tmp_name']);$a++)
{
$target_file = $target_dir . basename($_FILES["file"]["name"][$a]);
$imageFileType=pathinfo($target_file, PATHINFO_EXTENSION);
var_dump(pathinfo($target_file));
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif")
{
echo "<br> Sorry, only JPG, JPEG, PNG & GIF files are allowed. your file is a $imageFileType <br>";
}
}
Фотографии/2014-02-21 18.19.08.jpg
echo $target-file;
дает этот выход Фотографии/2014-02-21 18.19.08.jpg
для var_dump, это выдается на экран, массив (3) {["dirname"] => строка (6) "Фотографий" ["basename"] => строка (1) "2" [ filename "] => string (1)" 2 "}
Что-то не в порядке с моим кодом или путь pathinfo() не работает с именами имен номеров и специальных символов?
Есть ли другая функция, которая работает с этими типами имен файлов или должна взорваться() $ target_file с помощью. и взять последний элемент в возвращаемом массиве?
Что произойдет, если вы поставите 'error_reporting (E_ALL)' в верхней части вашего сценария ? –
Пожалуйста, проверьте ссылку и прочитайте комментарии отмеченного answer.http: //stackoverflow.com/questions/10368217/how-to-get-the-file-extension-in-php –
Что произойдет, если вы «echo» target_file = $ target_file
\ n ";' прямо над вашим var_dump()? Является ли имя файла «Photos/2» или «Photos/2.jpg»? –