WP_REST_Attachments_Controller::check_upload_size()protectedWP 4.9.8

Determine if uploaded file exceeds space quota on multisite.

Replicates check_upload_size().

Метод класса: WP_REST_Attachments_Controller{}

Хуков нет.

Возвращает

true|WP_Error. True if can upload, error for errors.

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->check_upload_size( $file );
$file(массив) (обязательный)
$_FILES array for a given file.

Список изменений

С версии 4.9.8 Введена.

Код WP_REST_Attachments_Controller::check_upload_size() WP 6.7.1

protected function check_upload_size( $file ) {
	if ( ! is_multisite() ) {
		return true;
	}

	if ( get_site_option( 'upload_space_check_disabled' ) ) {
		return true;
	}

	$space_left = get_upload_space_available();

	$file_size = filesize( $file['tmp_name'] );

	if ( $space_left < $file_size ) {
		return new WP_Error(
			'rest_upload_limited_space',
			/* translators: %s: Required disk space in kilobytes. */
			sprintf( __( 'Not enough space to upload. %s KB needed.' ), number_format( ( $file_size - $space_left ) / KB_IN_BYTES ) ),
			array( 'status' => 400 )
		);
	}

	if ( $file_size > ( KB_IN_BYTES * get_site_option( 'fileupload_maxk', 1500 ) ) ) {
		return new WP_Error(
			'rest_upload_file_too_big',
			/* translators: %s: Maximum allowed file size in kilobytes. */
			sprintf( __( 'This file is too big. Files must be less than %s KB in size.' ), get_site_option( 'fileupload_maxk', 1500 ) ),
			array( 'status' => 400 )
		);
	}

	// Include multisite admin functions to get access to upload_is_user_over_quota().
	require_once ABSPATH . 'wp-admin/includes/ms.php';

	if ( upload_is_user_over_quota( false ) ) {
		return new WP_Error(
			'rest_upload_user_quota_exceeded',
			__( 'You have used your space quota. Please delete files before uploading.' ),
			array( 'status' => 400 )
		);
	}

	return true;
}