How can I check if a file extension and mime type are in an array this is the code I currently have.
$upload_project_thum = $_FILES['upload_project_thum']['name'];
$upload_project_thum_ext = substr($upload_project_thum, strrpos($upload_project_thum, '.') + 1);
$upload_permitted_types= array('image/jpeg:jpg','image/pjpeg:jpg','image/gif:gif','image/png:png');
Then down where i'm checking if the file is a valid type I have this foreach loop
foreach ($upload_permitted_types as $image_type) {
$type = explode(":", $image_type);
if (($type[0] != $_FILES['upload_project_thum']['type']) && ($upload_project_thum_ext != $type[1]) ) {
$errmsg_arr[] = 'Please select a jpg, jpeg, gif, or png image to use as the project thumbnail'. $type[1] . " Type: ". $type[0];
$errflag = true;
}
The problem is that if the file type isn't ALL of the types in the array (which is impossible) I get an error. It works to the point where if the upload file is in the array that error message won't trigger.
The way I am doing this now is:
The advantage to this is that it will allow a .gif file with a mime of jpeg. So it doesn't force the mine and the extension to match but does make sure they are both image types.
This should look for a proper string glued from both the type and extension.
Another way is to modify your loop like that:
I like to get the files array and then use a foreach loop literating over possible conditions
return $msg;