Я пытаюсь разрешить пользователям загружать почтовые сообщения Outlook, сохраненные как файлы .msg, но моя система ошибок сообщает, что сообщения не являются частью моей разрешенной группы. Я пробовал 3 разных типа прогноза, но безрезультатно. Каков правильный тип mime?PHP - Загрузить сообщения электронной почты Outlook
Вот мой сокращенный код.
$whitelist = array('application/outlook','application/msoutlook','application/vnd.ms-outlook');
$errors = false;
if (isset($_POST['submit'])) {
$uniqueid = time().$_SESSION['webuserid'];
$description = htmlspecialchars($_POST['description']);
if (empty($_FILES['file']['name'])) {
$message = "<b> * No File Selected</b>"; $errors = true; }
if ($_FILES['file']['size'] > 5000000 && !empty($_FILES['file']['name'])) {
$message = "<b> * 5MB Max Upload</b>"; $errors = true; }
if (!in_array($_FILES['file']['type'], $whitelist) && !empty($_FILES['file']['name'])) {
$message = "<b> * PDF, Excel, Outlook Message, Word Format Only</b>"; $errors = true; }
Благодаря
Unfortunetely применения/vnd.msoutlook не работал, но var_dump показал «приложение/октет-поток» в качестве типа. Спасибо за вашу помощь – bass71982
Просто будьте осторожны, что 'application/octet-stream' - это тип mime для всего класса файлов, который, вероятно, вам не нужен, (например, .exe) или что-либо, что тип mime не может быть определен для. См. Здесь для получения дополнительной информации: http://stackoverflow.com/questions/20508788/do-i-need-content-type-application-octet-stream-for-file-download. Итак, вы можете добавить проверку расширения файла тоже, на всякий случай. Обратите внимание, что расширение файла не является безопасным проверкой файла на своем собственном. – TunaMaxx
Проверка '$ _FILES ['file'] ['type']' не является безопасным подходом, поскольку тип задается браузером и может быть легко подделан. Более безопасный (и надежный) способ сделать это - использовать расширение файловой системы PHP. См. Здесь несколько примеров: http://php.net/manual/en/function.finfo-open.php – alexpls