我试图将上传限制为仅使用pdf上传文件扩展名。 我之前已经上传了,但使用了任何扩展程序;
$form = $_FILES['form']['name'];
$upload = "forms/$form";
move_uploaded_file($_FILES['form']['tmp_name'],$upload);
我现在正在尝试将其调整为仅上传pdf,使用以下内容;
if (isset($_FILES['file']))
$exten = explode( "." , $_FILES['form']['name']);
$exten = $exten[1];
$form = $_FILES['form']['name'];
$upload = "forms/$form";
if (
($exten == "pdf")
|| ($exten == "PDF")){
move_uploaded_file($_FILES['form']['tmp_name'] , $upload);
}
但是文件不再上传到目录,而且它接受任何扩展名。它在我的数据库中输入文件名。 我遵循了一个教程,但不确定我哪里出错了
答案 0 :(得分:1)
您可以这样检查文件类型:
if ($_FILES['form']['type'] == 'application/pdf') {
move_uploaded_file($_FILES['form']['tmp_name'] , $_FILES['form']['name']);
}
$_FILES['form']['type']
包含上传文件的MIME类型
http://php.net/manual/en/features.file-upload.post-method.php
答案 1 :(得分:1)
使用PATHINFO_EXTENSION参数获取文件扩展名try pathinfo,它将为您节省时间
您还应该使用strtolower函数进行比较,例如。您写入的条件会意外拒绝.PdF / .PDf扩展名
if (isset($_FILES['file'])) {
$exten = pathinfo($_FILES['form']['name'], PATHINFO_EXTENSION);
$form = $_FILES['form']['name'];
$upload = "forms/$form";
if (strtolower($exten) == 'pdf'){
move_uploaded_file($_FILES['form']['tmp_name'] , $upload);
}
}
PS:在isset函数之后你是否错过了括号,还是只是一个复制粘贴问题?