WordPress как на ладони
wordpress jino

Как ограничить размер загружаемого файла?

Теперь задача, установить ограничение (лимит) в килобайтах для загружаемых SVG или других картинок (файлов).

Для SVG нужно чтобы, если файл весит больше 40КБ то его нельзя было бы загрузить, для всех остальных картинок лимит должен быть 500 КБ.

Хотелось бы решение без плагинов, думаю что там через хук не сложно делается, но я не смог найти такой хук...

П.С. На сайте открыта возможность загружать SVG файлы, делал по этой статьей, спасбо!

2
Доброжелатель
7 месяцев назад
  • 0
    Kama5409
    ## ограничиваем размер загружаемых файлов по типу
    add_filter( 'wp_handle_sideload_prefilter', 'check_file_upload_size' );
    add_filter( 'wp_handle_upload_prefilter', 'check_file_upload_size' );
    function check_file_upload_size( $file ){
    	// только для SVG картинок
    	if( false !== strpos( $file['type'], 'image/svg') ){
    		$size_limit = 40; // максимальный допустимый размер в KB
    	}
    	// для всех картинок
    	elseif( false !== strpos( $file['type'], 'image') ){
    		$size_limit = 500; // максимальный допустимый размер в KB
    	}
    
    	if( isset($size_limit) ){
    		$size_limit *= 1024;
    		if( intval($file['size']) > $size_limit )
    			$file['error'] = 'Размер файла не может превышать '. size_format( $size_limit );
    	}
    
    	return $file;
    }

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация