Проверьте, является ли файл изображением или PDF - PullRequest
0 голосов
/ 04 сентября 2018

Мне нужно проверить, является ли файл изображением или pdf в php / laravel.

Вот что у меня сейчас:

return $file['content-type'] == 'image/*';

В дополнение к 'image / *' мне нужно добавить 'application / pdf'

Как это можно добавить?

Обновление

Чтобы быть более понятным, есть ли способ добавить больше допустимых типов без необходимости выполнять условие OR. Теперь я получил ответ с in_array!

Ответы [ 4 ]

0 голосов
/ 04 сентября 2018

Вы можете просто использовать оператор OR, т.е.

return ($file['content-type'] == 'image/*' || $file['content-type'] == 'application/pdf');

Предполагается, что вы все еще хотите вернуть true / false. Таким образом, вызывающая сторона будет знать, что файл представляет собой PDF или изображение.

Или вы имеете в виду, что оператор return должен создавать значение, которое различает два типа? Это не ясно.

Если это последнее, чем вы, возможно, захотите что-то более похожее на

$type = null;
switch ($file['content-type']) {
  case "image/*":
    $type = "image";
    break;
  case "application/pdf":
    $type = "pdf";
    break;
}
return $type;
0 голосов
/ 04 сентября 2018
return $file['content-type'] == 'image/*' || return $file['content-type'] == 'application/pdf';

"||" то есть ИЛИ

0 голосов
/ 04 сентября 2018

Мне нравится такой подход, он немного экономит при наборе

return (in_array($file['content-type'], ['image/jpg', 'application/pdf']));
0 голосов
/ 04 сентября 2018

Вы можете проверить тип содержимого файла, используя условие ИЛИ, чтобы добавить дополнительное условие проверки.

return ($file['content-type'] == 'image/*' || $file['content-type'] == 'application/pdf')

Но было бы лучше, если бы вы поместили все условные значения в массив и проверили их наличие, используя in_array.

return (in_array(['image/jpg', 'application/pdf'], $file['content-type']));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...