MIME类型用于在不同浏览器中以PHP上传PDF

我正在创建一个允许用户上传PDF文档的Web应用程序。 以下是检查(限制)文档类型为pdf的代码。

if (isset($_POST['submitbutton'])) {
  $name = $_FILES['myfile']['name'];
  $type = $_FILES['myfile']['type'];
  $size = $_FILES['myfile']['size'];
  $tmpname = $_FILES['myfile']['tmp_name'];
  $ext = substr($name, strrpos($name,'.'));  //Get the extension of the selected file
  echo $type.' This is the type';
  echo '<br>';
  if (($type == "application/pdf")||($type == "application/octet-streamn")) {
    echo 'ok';
  } else {
    echo "That is not a pdf document";
  }
}

我通过echo(ing)$ type来检查类型到屏幕上。 但是Firefox的类型输出是不同的。 我只需要确认下面的MIME类型。 当我说:我是否正确?

Internet Explorer:application / pdf

Opera:application / pdf

FireFox:application / octet-streamn

或者是否存在涵盖所有现有浏览器的标准MIME类型。 请帮助,我仍然让我的饲料湿与PHP和文件


不要相信$_FILES['myfile']['type']因为它是由客户端提供的。 更好的解决方案是使用finfo_open:

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$type = finfo_file($finfo, $_FILES['myfile']['tmp_name']);
if($type == 'application/pdf'){
    //Is a PDF
}

为了避免混淆,并且浏览器问题使用JQuery

var filename="";
$('#upload').on( 'change', function() {
filename= $( this ).val();
var exten = filename.split('.').pop();
if(exten!="pdf"){
    alert("Only pdf documents are allowed");
    $(this).val('');
}
});
链接地址: http://www.djcxy.com/p/46787.html

上一篇: Mime types for uploading pdf in PHP in different browsers

下一篇: Uploading docx file in Zend Framework with mime type fails?