Все еще получаю поддержку PHP здесь. Я видел другие вопросы, похожие на это, но я не могу понять, почему мой возвращает ложь. У меня есть форма, которая отправляет текст и прикрепляет файлы по электронной почте. Форма отправляет файлы как ожидалось, но как только я начал пытаться проверять файл, я начал получать ошибку. Почему моя проверка всегда возвращает false?Почему in_array() всегда возвращает false? php
$error = False;
$file_type = $_FILES['upload']['type']; //returns the mimetype
$allowed = array("image/jpeg", "image/png", "image/gif", "application/pdf");
$total = count($_FILES['upload']['name']);
$attachments = "None";
$attachmentString = "No Attachments";
if(isset($_FILES['upload']['name']) && is_array($_FILES['upload']['name']) && count($_FILES['upload']['name']) > 0){
// Loop through each file
for($i=0; $i<$total; $i++) {
//Get the temp file path
$tmpFilePath = $_FILES['upload']['tmp_name'][$i];
//Make sure we have a filepath
if ($tmpFilePath != ""){
$uploaddir = trailingslashit(realpath(__DIR__)) . 'uploads/';
wp_mkdir_p($uploaddir);
//Setup our new file path
$newFilePath = $uploaddir . basename($_FILES['upload']['name'][$i]);
if(!in_array($file_type, $allowed)) {
$error = True;
echo "Error: Only jpg, gif, png, and pdf files are allowed.<br />";
}
else
{
//Upload the file into the temp dir
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
$attachments[$i] = $newFilePath;
//make string for mimetype headers in email
$attachmentString += implode($attachments[$i]) + ", ";
}
}
}
}
}
пытаются 'var_dump ($ file_type)' и посмотреть, если это правильно. – Phiter
'$ file_type' - __array__. И если вы распечатали это, вы увидите это. Но кто отлаживает сегодня? –
Что делает echo $ file_type перед тем, как дать in_array? Вам также может потребоваться добавить изображение/jpg в массив типов файлов – dpp