public function Upload::opUpload in IMCE 8
Same name and namespace in other branches
- 8.2 src/Plugin/ImcePlugin/Upload.php \Drupal\imce\Plugin\ImcePlugin\Upload::opUpload()
Operation handler: upload.
File
- src/Plugin/ ImcePlugin/ Upload.php, line 45 
Class
- Upload
- Defines Imce Upload plugin.
Namespace
Drupal\imce\Plugin\ImcePluginCode
public function opUpload(ImceFM $fm) {
  $folder = $fm->activeFolder;
  if (!$folder || !$folder
    ->getPermission('upload_files')) {
    return;
  }
  // Prepare save options.
  $destination = $folder
    ->getUri();
  $replace = $fm
    ->getConf('replace', FileSystemInterface::EXISTS_RENAME);
  $validators = [];
  // Extension validator.
  $exts = $fm
    ->getConf('extensions', '');
  $validators['file_validate_extensions'] = [
    $exts === '*' ? NULL : $exts,
  ];
  // File size and user quota validator.
  $validators['file_validate_size'] = [
    $fm
      ->getConf('maxsize'),
    $fm
      ->getConf('quota'),
  ];
  // Image resolution validator.
  $width = $fm
    ->getConf('maxwidth');
  $height = $fm
    ->getConf('maxheight');
  if ($width || $height) {
    $validators['file_validate_image_resolution'] = [
      ($width ? $width : 10000) . 'x' . ($height ? $height : 10000),
    ];
  }
  // Name validator.
  $validators[get_class($this) . '::validateFileName'] = [
    $fm,
  ];
  // Save files.
  if ($files = file_save_upload('imce', $validators, $destination, NULL, $replace)) {
    $fs = \Drupal::service('file_system');
    foreach (array_filter($files) as $file) {
      // Set status and save.
      $file
        ->setPermanent();
      $file
        ->save();
      // Add to the folder and to js response.
      $name = $fs
        ->basename($file
        ->getFileUri());
      $item = $folder
        ->addFile($name);
      $item->uuid = $file
        ->uuid();
      $item
        ->addToJs();
    }
  }
}