将exif_imagetype变为不区分大小写?

时间:2014-01-18 21:47:25

标签: php case-insensitive

如何将此exif_imagetype()函数设置为caseinsensitive?这样它将允许.jpg和.JPG?无法想象这一个..香港专业教育学院尝试过stripos();没有运气..这是我的代码:

   $allowed_types = array(IMAGETYPE_GIF,IMAGETYPE_JPEG,IMAGETYPE_PNG);
   if (in_array(exif_imagetype($_FILES["uploaded_file"]["tmp_name"]), $allowed_types)){

        // SUCCSESFUL

使用STRTOLOWER获取错误()

  $allowed_types = array(IMAGETYPE_GIF,IMAGETYPE_JPEG,IMAGETYPE_PNG);
  if (strtolower(in_array(exif_imagetype($_FILES["uploaded_file"]["tmp_name"]), $allowed_types))){

IT SAYS:“警告:exif_imagetype():文件名在”

中不能为空

编辑:当我尝试上传大写的.JPG图片时,我只收到此错误..大多数现代相机都使用这种格式,如果你问我这很烦人:很多网站因为这个原因丢失了用户,我们必须找到解决这个问题的方法。

2 个答案:

答案 0 :(得分:2)

在您输入“tmp name”变量之前,只需对您接受的所有输入执行strtolower()。你应该在整个过程中对输入进行消毒,所以也可以这样做。

答案 1 :(得分:0)

使用:

$allowed_types = array(strtolower(IMAGETYPE_GIF),strtolower(IMAGETYPE_JPEG),strtolower(IMAGETYPE_PNG));
if (in_array(strtolower(exif_imagetype($_FILES["uploaded_file"]["tmp_name"])), $allowed_types)){