php上传文件限制
php upload file restrictions
我试图将我的上传限制为仅上传带有 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);
}
但是文件不再上传到目录,而且它接受任何扩展名。它正在我的数据库中输入文件名。
我按照教程进行了此操作,但不确定哪里出错了
您可以这样检查文件类型:
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
要获取文件扩展名,请尝试使用 PATHINFO_EXTENSION 参数 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 函数后遗漏了括号,或者仅仅是复制粘贴问题?
我试图将我的上传限制为仅上传带有 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);
}
但是文件不再上传到目录,而且它接受任何扩展名。它正在我的数据库中输入文件名。 我按照教程进行了此操作,但不确定哪里出错了
您可以这样检查文件类型:
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
要获取文件扩展名,请尝试使用 PATHINFO_EXTENSION 参数 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 函数后遗漏了括号,或者仅仅是复制粘贴问题?