我正在尝试优化我的照片上传器,以便它允许所有文件扩展名,包括大写.JPG / .JPEG或.PNG
我一直试图将strtolower()放在$ extension变量上,没有运气。还有很多其他解决方案,没什么用。这是我过滤扩展名的地方:
刚刚安装了exif和mbstrings .dll ..现在我收到了这个错误:
“exif_imagetype()filename不能为空”
// FILE EXTENSION FILTER
$allowed_types = array(IMAGETYPE_GIF,IMAGETYPE_JPEG,IMAGETYPE_PNG);
if(in_array(exif_imagetype($_FILES["uploaded_file"]["tmp_name"]), $allowed_types)){
// SUCCSESFUL
任何帮助都是非常有用的!我一直试图让这项工作持续数小时:D
答案 0 :(得分:1)
在检查前使用strtolower()函数进行小写扩展;
// FILE EXTENSION FILTER
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode('.',$_FILES['uploaded_file']['name']);
$extension = end($temp);
if ((($_FILES["uploaded_file"]["type"] == "image/gif")
|| ($_FILES["uploaded_file"]["type"] == "image/jpeg")
|| ($_FILES["uploaded_file"]["type"] == "image/jpg")
|| ($_FILES["uploaded_file"]["type"] == "image/pjpeg")
|| ($_FILES["uploaded_file"]["type"] == "image/x-png")
|| ($_FILES["uploaded_file"]["type"] == "image/png"))
&& ($_FILES["uploaded_file"]["size"] < 10485760)
&& in_array(strtolower($extension), $allowedExts))
{
// SUCCSESFUL
答案 1 :(得分:0)
我在我制作的网站上做了类似的事情。这是我的解决方案。
$file_name = $_FILES['file']['name'];
if ($_FILES['file']['size']>$maxsize) $status = "Error: Picture size too large. Max file size is $maxsize bytes.<br>";
if (($_FILES['file']['type']!="image/gif") && ($_FILES['file']['type']!="image/pjpeg") && ($_FILES['file']['type']!="image/jpeg") && ($_FILES['file'] ['type']!="image/png")){
$status .= "Error: Wrong file type. Must be JPG or GIF or PNG only.<br>";
}
$picextorg = substr($file_name,-3);
$picext = strtolower($picextorg);
if ((!isset($status)) && ($picext!="gif")&& ($picext!="jpg") && ($picext!="png")) $status .= "Error: The Wrong file type. Must be JPG or GIF or PNG only.<br> ";
我认为用你的代码实现它并不是很难。让我知道它是怎么回事!