Как ограничить пользователей в загрузке файлов разного типа

Я уже писал, как показать пользователям, какие типы файлов можно загружать в блог – MIME-типы отображаются в отдельной вкладке. Но иногда требуется ограничить эти типы определенным набором. С помощью специального фильтра можно создать избранный список пользователей, которые могут загружать все типы файлов, а остальным же ограничить типы файлов определенными расширениями.

Для этого откройте файл functions.php вашей темы, и добавьте в него такой код:

add_filter('upload_mimes','restrict_mime');
function restrict_mime($mimes) {
    global $current_user;
    get_currentuserinfo();
    // change users in list
    $users = array(
                              "tiaurus",
                              "testuser",
                              "someuser",
                              "Garry"
                            );
    if (!in_array($current_user->user_login, $users)) {
	$mimes = array(
	                'jpg|jpeg|jpe' => 'image/jpeg',
	                'gif' => 'image/gif',
                    'png' => 'image/png' 
	);
	}
	return $mimes;
}

Если пользователь входит в перечисленный в коде список, то он имеет право загружать все типы файлов. Если же не входит – то только JPG, PNG и GIF. Неплохая добавка ко всем остальным установкам безопасности.

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

5 Комментарии

  1. Спасибо очень полезный пост!))) Я бы еще добавил в массив mines 3 элемент

    'png' => 'image/png'

    и еще после последнего элемента массива запятая не ставиться, но это не критично php проглатывает такое.

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*