我想通过PHP验证用户提交的文件是否是有效的PDF文件。 但是我有这个限制:
我唯一需要知道的是文件实际上是PDF。 ¿我可以使用哪种低级解决方案?就像阅读第一个x字符并查找%PDF或类似内容一样。
提前致谢。
答案 0 :(得分:0)
您受到了限制,但在使用$_FILES
提交表单后,您可以在后端执行某些操作,该表单来自使用输入类型="文件"提交的表单:
$_FILES['form_name_for_input_type_equals_file']['name'] ---> check if extension here is .pdf
$_FILES['form_name_for_input_type_equals_file']['type'] ---> check if mime type here is application/pdf
有关$_FILES
的更多信息,请点击here。
答案 1 :(得分:0)
尝试使用此
$allowed = array('pdf');
$filename = $_FILES['document_file']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if(!in_array($ext,$allowed) ) {
echo 'Please, only upload PDF files';
}
你还可以做的是让PHP调用一个BASH脚本来确认它是否是操作系统的pdf,我不建议你这样做,但是它的级别低得多。您还可以使用bash或PHP中的正则表达式来检查文件头是否与PDF的文件头相匹配。
答案 2 :(得分:0)
这样的事可能......
if(isset($_FILES['uploaded'])) {
$temp = explode(".", $_FILES["uploaded"]["name"]);
$allowedExts = array("pdf");
if( in_array($allowedExts)) {
//code....
} else {
echo "Error,not a PDF file";
}
}
显然,您还可以通过扩展数组
添加额外的扩展以进行验证答案 3 :(得分:0)
试一试: 它对我有用:
$file_type = $_FILES['filename']['type'];
if($file_type=='application/pdf'){
// is pdf
}else{
// not pdf
}