FileUploadLocationTrait.php

Same filename and directory in other branches
  1. 11.x core/modules/file/src/Upload/FileUploadLocationTrait.php

Namespace

Drupal\file\Upload

File

core/modules/file/src/Upload/FileUploadLocationTrait.php

View source
<?php

namespace Drupal\file\Upload;

use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\Core\Field\TypedData\FieldItemDataDefinition;
use Drupal\file\Plugin\Field\FieldType\FileFieldItemList;
use Drupal\file\Plugin\Field\FieldType\FileItem;

/**
 * Resolves the file upload location from a file field definition.
 */
trait FileUploadLocationTrait {
  
  /**
   * Resolves the file upload location from a file field definition.
   *
   * @param \Drupal\Core\Field\FieldDefinitionInterface $fieldDefinition
   *   The file field definition.
   *
   * @return string
   *   An un-sanitized file directory URI with tokens replaced. The result of
   *   the token replacement is then converted to plain text and returned.
   */
  public function getUploadLocation(FieldDefinitionInterface $fieldDefinition) : string {
    assert(is_a($fieldDefinition->getClass(), FileFieldItemList::class, TRUE));
    $fieldItemDataDefinition = FieldItemDataDefinition::create($fieldDefinition);
    $fileItem = new FileItem($fieldItemDataDefinition);
    return $fileItem->getUploadLocation();
  }

}

Traits

Title Deprecated Summary
FileUploadLocationTrait Resolves the file upload location from a file field definition.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.