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

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

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

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

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

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

3
Доброжелатель
6.3 года назад
  • 1
    Kama9616
    # ограничиваем размер загружаемых файлов по типу
    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+xml') ){
    		$size_limit = 50; // макс размер в KB
    	}
    	// для всех остальных картинок
    	elseif( false !== strpos( $file['type'], 'image') ){
    		$size_limit = 500;
    	}
    
    	if( isset($size_limit) ){
    		$size_limit *= 1024;
    		if( intval($file['size']) > $size_limit )
    			$file['error'] = 'ERROR: Размер этого типа файлов не может превышать '. size_format( $size_limit );
    	}
    
    	return $file;
    }

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