PHP bir diziden yükle dosya türünü kontrol edin.

2 Cevap php

Bir dosya uzantısı ve MIME türü bu var şu anda kodu bir dizide olup olmadığını nasıl kontrol edebilirim.

$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');

Dosya Ben bu foreach döngü var geçerli bir türü ise aşağı sonra ben kontrol ediyorum nerede

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;
        }  

Sorun dosya türü (mümkün olan) dizideki türlerinden TÜM değilse bir hata alıyorum olmasıdır. Bu dosya yükleme dizide ise bu hata mesajı tetiklemez noktaya çalışır.

2 Cevap

Ben şimdi bunu yapıyorum yoludur:

    $upload_permitted_types['mime']= array('image/jpeg','image/gif','image/png');
$upload_permitted_types['ext']= array('jpeg','jpg','gif','png');

if(!in_array($_FILES['upload_project_thum']['type'],$upload_permitted_types['mime']) || !in_array($upload_project_thum_ext,$upload_permitted_types['ext'])
{
       $errmsg_arr[] = 'Please select a jpg, jpeg, gif, or png image to use as the project thumbnail';
       $errflag = true;
}

Bunun avantajı jpeg bir mim ile bir. Gif dosyası sağlayacak olmasıdır. Bu yüzden bu maç için mayın ve uzantısı zorlamaz ama her ikisi de görüntü türleri vardır emin olun yok.

if( !in_array( $_FILES['upload_project_thum']['type'] . ':' . $upload_project_thum_ext, $upload_permitted_types) ) {
    Trigger-error-here;
}

Bu türü ve uzantısı hem yapıştırılmış uygun bir dize için bakmak gerekir.

Başka bir yolu da gibi döngü değiştirmek için:

$is_allowed = false;
foreach ($upload_permitted_types as $image_type) {
    $type = explode(":", $image_type);
    if (($type[0] == $_FILES['upload_project_thum']['type']) && ($type[1] == $upload_project_thum_ext ) ) {
        $is_allowed = true;
        break;
    }
}

if( !$is_allowed ) {
        $errmsg_arr[] = 'Please select a jpg, jpeg, gif, or png image to use as the project thumbnail'. $type[1] . " Type: ". $type[0];
        $errflag = true;
}