Php 如何更正此文件上载脚本中的扩展名规范?

Php 如何更正此文件上载脚本中的扩展名规范?,php,file-upload,Php,File Upload,我正在制作一个上传脚本,并且我已经编写了代码,这样除了图像之外,其他文件都不会被上传,但是脚本也在上传其他文件,而且当我回显扩展名时,它只显示$name的strpos。有人能帮忙吗????我保存了两个文件,1)uploader.php和2)uploader2.php。php包含上传脚本的格式 <h1>Upload your pictures for free</h1> <form action="uploader2.php" method="post" en

我正在制作一个上传脚本,并且我已经编写了代码,这样除了图像之外,其他文件都不会被上传,但是脚本也在上传其他文件,而且当我回显扩展名时,它只显示$name的strpos。有人能帮忙吗????我保存了两个文件,1)uploader.php和2)uploader2.php。php包含上传脚本的格式

    <h1>Upload your pictures for free</h1>
<form action="uploader2.php" method="post" enctype="multipart/form-data">
<input type="file" name="uploads">
<input type="submit" value="Update">
免费上传图片
uploader2.php包含上传到文件夹uploads的脚本/

<?php
error_reporting(E_ALL ^ E_NOTICE);
$name = $_FILES['uploads']['name'];
echo $type= $_FILES['uploads']['type'];
$extension = strtolower($name,strpos($name,'.')+1));
$size = $_FILES['uploads']['size'];

$max_size = "20000000";
$t_n = $_FILES['uploads']['tmp_name'];

if(isset($name)) {
if(!empty($name)) {

if(($extension=="jpg" || $extension=="jpeg" || $extension=="bmp" || $extension=="gif")                            && ($type="image/jpeg" || $type="image/bmp")&&($size<=$max_size)){

$location="uploads/";

if(move_uploaded_file($t_n,$location.$name)){
echo "Uploaded!";
}else{
echo "An error occured";
}
}
else{
echo "The uploading file must be jpg or jpeg and should have size less than 1mb";
}
}

else {
echo "Please choose a file";
}
}

?>

您可以使用它来获取扩展名

$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);

请注意:如果($extension==
@geomagas),您在
中有一个额外的
),我认为
那里。只允许图像:这就是你想要实现的吗?是的!!@bhaviksah…我只想上传jpg、png等图像文件,但当我执行此脚本时,不仅会上传图像文件,还会上传其他具有不同扩展名的文件。@putvande Oops!我错过了间隙…抱歉!我认为,
pathinfo
更好y以获得扩展。请参阅更多详细信息,说明在示例中未使用时为什么包含
$allowedExts
?以及Bhavik所说的。