2016-05-13 118 views
-1

不知道这里有什么问题。这是我的上传文件,它适用于jpeg和png文件,但由于某种原因,我不知道,只要我选择一个PDF文件,它会给我提供无效的文件类型错误。我已经尝试了许多不同尺寸的pdf,并且我总是得到相同的错误。肯定有一些我只是没有看到。文件上传不能使用pdf

if (isset($_POST['uspid'])) { 
$spid =mysqli_real_escape_string($mysqli, $_POST['uspid']); 
} 
$udir= "uploads/".$spid."/"; 

if(!is_dir($udir)){ 

mkdir("uploads/".$spid, 0777); 
} 

$ufile = $udir . basename($_FILES['fileToUpload']['name']); 
$allexts = array("jpg", "jpeg", "gif", "png", "pdf"); 
$ext = end(explode(".", $_FILES["fileToUpload"]["name"])); 
if ((($_FILES["fileToUpload"]["type"] == "image/gif") 
|| ($_FILES["fileToUpload"]["type"] == "image/jpeg") 
|| ($_FILES["fileToUpload"]["type"] == "image/pdf") 
|| ($_FILES["fileToUpload"]["type"] == "image/pjpeg") 
|| ($_FILES["fileToUpload"]["type"] == "image/png")) 
&& ($_FILES["fileToUpload"]["size"] < 5000000) 
&& in_array($ext, $allexts)){ 
if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $ufile)) { 
    echo "File upload was successful."; 
} else { 
    echo "An error has occured. Please try again."; 
} 
} else { 
echo "Invalid file type. Please try again."; 
} 

代码的顶部只是把文件放到合适的目录和一切工作正常,唯一的问题是与PDF文件。

+2

pdf的MIME类型为application/pdf – vascowhite

回答

1

对于pdf文件类型将是'application/pdf'。使用以下条件

($_FILES["fileToUpload"]["type"] == "application/pdf")