2014-08-27 3 views
0

Я пытаюсь разрешить пользователям загружать почтовые сообщения 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; } 

Благодаря

ответ

1

Так почему бы вам не var_dump($_FILES['file']['type']); для .msg файл и посмотреть, что он говорит? Затем добавьте это к вашему $ whitelist.

Вы, вероятно, найти MimeType является применения/vnd.msoutlook

+0

Unfortunetely применения/vnd.msoutlook не работал, но var_dump показал «приложение/октет-поток» в качестве типа. Спасибо за вашу помощь – bass71982

+0

Просто будьте осторожны, что 'application/octet-stream' - это тип mime для всего класса файлов, который, вероятно, вам не нужен, (например, .exe) или что-либо, что тип mime не может быть определен для. См. Здесь для получения дополнительной информации: http://stackoverflow.com/questions/20508788/do-i-need-content-type-application-octet-stream-for-file-download. Итак, вы можете добавить проверку расширения файла тоже, на всякий случай. Обратите внимание, что расширение файла не является безопасным проверкой файла на своем собственном. – TunaMaxx

+0

Проверка '$ _FILES ['file'] ['type']' не является безопасным подходом, поскольку тип задается браузером и может быть легко подделан. Более безопасный (и надежный) способ сделать это - использовать расширение файловой системы PHP. См. Здесь несколько примеров: http://php.net/manual/en/function.finfo-open.php – alexpls

Смежные вопросы