Mime types for uploading pdf in PHP in different browsers
I am creating an web application that allows users to upload pdf documents. The following is the code to check(Restrict) the document type to 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";
}
}
I checked the types by echo(ing) $type to the screen. But the type output is different for firefox. I just need to confirm the following mime types. Am I correct when I say:
Internet explorer : application/pdf
Opera: application/pdf
FireFox : application/octet-streamn
or is there a standard mime type that covers all existing browsers. Please help, I am still getting my feed wet with php and files
Don't trust $_FILES['myfile']['type']
as it is provided by the client. A better solution is to use 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/46788.html
上一篇: 从文件内容中检测文件类型,而不是文件名