如何在PHP中仅上载pdf文件

如何在PHP中仅上载pdf文件,php,file-upload,Php,File Upload,我知道这一定是一个重复的问题,但我在这里有一个不同的要求。我想要的是,当用户单击上载按钮时,出现的对话框只允许用户上载PDF文件类型,而不允许上载其他内容 到目前为止,我所看到的是,一旦用户上传了一个文件,那么就会对文件类型进行检查。我不想允许用户上传pdf以外的文件 请建议一个实现它的方法 您需要的是HTML5,它有一个文件类型选择器,用于HTML代码中的对话框 $finfo = finfo_open(FILEINFO_MIME_TYPE); $mime = finfo_file($fin

我知道这一定是一个重复的问题,但我在这里有一个不同的要求。我想要的是,当用户单击上载按钮时,出现的对话框只允许用户上载PDF文件类型,而不允许上载其他内容

到目前为止,我所看到的是,一旦用户上传了一个文件,那么就会对文件类型进行检查。我不想允许用户上传pdf以外的文件



请建议一个实现它的方法

您需要的是HTML5,它有一个文件类型选择器,用于
HTML代码中的对话框

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($finfo, $_FILES['file']['TMP_NAME']);
switch ($mime) {

   case 'application/pdf':

   default:
       die("Unknown/not permitted file type");
}
请看

例如:

<input type="file" name="pdf" id="pdf" accept="application/pdf" >

请注意,由于这个答案已经过时,他们说“这还没有被广泛接受”,但事实并非如此,
input
accept
现在在HTML5标记中被广泛接受

这不是PHP的问题,因为PHP只能在文件上传后使用它。PHP还应该检查上传后的文件类型,因为HTML accept可能会被复制

为了进一步澄清,PHP可以而不是在上传之前检查要上传的文件,因为PHP只在服务器端工作。因此,我建议使用HTML5标记只选择(看起来)类似于PDF的文件,然后一旦上传了PHP脚本,就可以检查文件类型的有效性,然后处理结果


在上传文件之前,PHP没有选择文件的位置,这完全取决于最终用户的浏览器和HTML

那么,你在这里使用的东西有什么问题吗?没什么问题@Fred ii-,只是要求只上传pdf文件,我只希望用户允许上传pdf文件。:)据我所知,你的代码看起来已经通过了验证。我认为你可以上传PDF以外的文件?看到这个答案谢谢Martin,这很有帮助:)