function file_progress_implementation

Determines the preferred upload progress implementation.

Return value

A string indicating which upload progress system is available. Either "apc" or "uploadprogress". If neither are available, returns FALSE.

4 calls to file_progress_implementation()
FileWidget::settingsForm in drupal/core/modules/file/lib/Drupal/file/Plugin/field/widget/FileWidget.php
Implements \Drupal\field\Plugin\Type\Widget\WidgetInterface::settingsForm().
file_ajax_progress in drupal/core/modules/file/file.module
Ajax callback: Retrieves upload progress.
file_managed_file_process in drupal/core/modules/file/file.module
Render API callback: Expands the managed_file element type.
file_requirements in drupal/core/modules/file/file.install
Implements hook_requirements().

File

drupal/core/modules/file/file.module, line 827
Defines a "managed_file" Form API field and a "file" field for Field module.

Code

function file_progress_implementation() {
  static $implementation;
  if (!isset($implementation)) {
    $implementation = FALSE;

    // We prefer the PECL extension uploadprogress because it supports multiple
    // simultaneous uploads. APC only supports one at a time.
    if (extension_loaded('uploadprogress')) {
      $implementation = 'uploadprogress';
    }
    elseif (extension_loaded('apc') && ini_get('apc.rfc1867')) {
      $implementation = 'apc';
    }
  }
  return $implementation;
}