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?