2013-11-13 5 views
0
//array of image file types 
    $fileType_array = array(IMAGETYPE_JPEG, IMAGETYPE_PNG); 

    //getimagesize to determine the file_type of the image 
    $getImage_thumbnail = getimagesize($_FILES[$thumbnail_fieldname]['tmp_name']); 
     $getImage_thumbnail_type = $getImage_thumbnail[2]; 
    $getImage_desktop_1280x800 = getimagesize($_FILES[$desktop_fieldname_1280x800]['tmp_name']); 
     $getImage_desktop_1280x800 = $getImage_desktop_1280x800[2]; 
    $getImage_desktop_1366x768 = getimagesize($_FILES[$desktop_fieldname_1366x768]['tmp_name']); 
     $getImage_desktop_1366x768 = $getImage_desktop_1366x768[2]; 
    $getImage_desktop_1920x1080 = getimagesize($_FILES[$desktop_fieldname_1920x1080]['tmp_name']); 
     $getImage_desktop_1920x800 = $getImage_desktop_1920x1080[2]; 

    if(in_array($getImage_thumbnail_type, $fileType_array, TRUE)){ 
     echo "<p>Thumbnail is an image.</p>"; 
     } 

Выше мой код, чтобы проверить, если выбранные файлы для загрузки образы, что я хотел бы сделать, это использовать in_array только один раз не несколько, если заявления/in_array, чтобы проверить, если в тип файла существует массив. Как это может быть?использование массива для петель

ответ

1

Вам нужно будет проверить все эти значения. Но задачу можно упростить, работая с массивом.

$fileType_array = array(IMAGETYPE_JPEG, IMAGETYPE_PNG); 

$filenames = array($thumbnail_fieldname, $desktop_fieldname_1280x800, ...); 
$files = array(); 
foreach ($filenames as $filename) { 
    if (isset($_FILES[$filename]['tmp_name'])) { 
     $resource = getimagesize($_FILES[$filename]['tmp_name']); 
     $type = $resource[2]; 
     if (in_array($type, $fileType_array, TRUE)) { 
      $files[$filename] = $resource; 
     } 
    } 
} 

Этот путь только файлы с принятыми типы файлов будут сохранены в $files и когда вы хотите изменить какие файлы вы работаете, вам нужно только обновить $filenames.

+0

Что такое '$ filenames как $ filename'? –

+0

Вы можете посмотреть 'foreach()' в [manual] (http://www.php.net/foreach). Это приведет к повторению массива '$ filenames' и сохранит текущее значение в' $ filename' (обычно это 'foreach ($ array as $ key => $ value)', но поскольку ключ не нужен здесь, t должно быть объявлено) – kero

+0

ow ok..and это будет работать, если имя файла в $ filenames не содержит ничего правильного? поскольку хранятся только принятые значения? –

Смежные вопросы