PHP:图像检查扩展
我目前的上传脚本有一些问题。 它不检查文件类型是否允许,我也不知道为什么。 有人看到我的问题了吗PHP:图像检查扩展,php,image,Php,Image,我目前的上传脚本有一些问题。 它不检查文件类型是否允许,我也不知道为什么。 有人看到我的问题了吗 //Reads the image name $image=$_FILES['image']['name']; //If empty if ($image == "") { echo '<div class="box_square form_error" style
//Reads the image name
$image=$_FILES['image']['name'];
//If empty
if ($image == "") {
echo '<div class="box_square form_error" style="margin-bottom:15px; padding:10px; font-size:11px;">Velg et bilde!</div>';
$errors = 1;
}
//If not empty
if ($image)
{
//Get orgiginal name from client machine
$filename = stripslashes($_FILES['image']['name']);
//Get the extension
$extension = getExtension($filename);
$extension = strtolower($extension);
//If file extension not known, error. If not, continue
if (($extension != "jpg") && ($extension != "jpeg"))
{
//Error message
echo '<div class="box_square form_error" style="margin-bottom:15px; padding:10px; font-size:11px;">Bare JPG og JPEG er tilatte filtyper!</div>';
$errors = 1;
}
//读取图像名称
$image=$_文件['image']['name'];
//如果是空的
如果($image==“”){
回音“Velg et bilde!”;
$errors=1;
}
//如果不是空的
如果($image)
{
//从客户端计算机获取原始名称
$filename=stripslashes($_文件['image']['name']);
//接分机
$extension=getExtension($filename);
$extension=strtolower($extension);
//如果文件扩展名未知,则返回错误。如果不知道,则继续
如果(($extension!=“jpg”)&($extension!=“jpeg”))
{
//错误消息
echo'Bare JPG og JPEG er tilatte filteyper!';
$errors=1;
}
看起来getExtension($filename)不正确。但是,我不知道为什么要使用斜杠
怎么样
echo "the extension used is ".$extension."<br>";
顺便说一句,您可以使用正则表达式提取扩展名
preg_match("/\.([^\.]+)$/", $filename, $extension);
不要依赖扩展名,而是依赖扩展名。您正指望用户上传具有正确扩展名的文件。 另一种方法是getimagesize(),它还将告诉您Mime类型。 我还看到exif-imagetype()说它也会这样做(但我从未使用过)。
您不想发生什么情况?当文件类型未知时,它不会回送消息。那么,什么是
$extension
contain?执行var\u dump($extension)
检查有效扩展名之前,请查看其中的内容。您可以发布getExtension
的代码吗?这也没有输出任何内容。您最好检查服务器上的mime类型,不要相信浏览器发送的内容。但是,检查文件扩展名没有帮助。您的服务器可能会不知何故,我使用了很多文件扩展名(例如php、phtml、php3、php4、php5、py等)。如果他们上传,我会在代码的顶部找到一个脚本,检查图像内容中是否有标签和其他内容。如果它有标签或其他内容,ip地址会存储在一个数据库中,我会调用该数据库来阻止试图这样做的用户。
preg_match("/\.([^\.]+)$/", $filename, $extension);
list ( $width, $height, $type, $html_dim ) = getimagesize ($_FILES['image']['tmp_name']);
echo "\$type:" . var_dump($type);