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