0
我想讓用戶上傳保存爲.msg文件的Outlook電子郵件,但是我的錯誤系統顯示這些郵件不屬於我允許的一部分。我嘗試了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 2014-08-27 10:35:41
只要注意'application/octet-stream'是您可能不希望允許的整個文件類的MIME類型(例如.exe)或任何無法確定MIME類型的文件對於。在這裏看到更多的信息:http://stackoverflow.com/questions/20508788/do-i-need-content-type-application-octet-stream-for-file-download因此,你可能想要添加文件擴展名檢查以防萬一。請注意文件擴展名不是一個安全的文件檢查它自己。 – TunaMaxx 2014-08-28 23:21:58
檢查'$ _FILES ['file'] ['type']'不是一種安全的方法,因爲該類型是由瀏覽器設置的,並且很容易被欺騙。更安全(可靠)的方法是使用PHP的fileinfo擴展。看到這裏的一些例子:http://php.net/manual/en/function.finfo-open.php – alexpls 2015-01-15 00:24:39