You are here

function elfinder_get_drupal_file_obj in elFinder file manager 8.2

Same name and namespace in other branches
  1. 6.2 elfinder.module \elfinder_get_drupal_file_obj()
  2. 7.3 elfinder.module \elfinder_get_drupal_file_obj()
  3. 7.2 elfinder.module \elfinder_get_drupal_file_obj()
2 calls to elfinder_get_drupal_file_obj()
elFinderVolumeDrupal::_drupalfileobject in src/Controller/elFinderVolumeDrupal.php
Create Drupal file object
elfinder_file_download in ./elfinder.module

File

./elfinder.module, line 327

Code

function elfinder_get_drupal_file_obj($uri) {
  $user = \Drupal::currentUser();
  $file = NULL;
  $fid = db_select('file_managed', 'f')
    ->condition('uri', rawurldecode($uri))
    ->fields('f', array(
    'fid',
  ))
    ->execute()
    ->fetchField();
  if ($fid) {
    $file = file_load($fid);
  }
  else {
    $file_init = array(
      'uid' => $user
        ->id(),
      'filename' => basename($uri),
      'uri' => $uri,
      'filemime' => \Drupal::service('file.mime_type.guesser')
        ->guess($uri),
      'timestamp' => REQUEST_TIME,
      'status' => FILE_STATUS_PERMANENT,
    );
    if (is_file(drupal_realpath($uri))) {
      $file_init['filesize'] = filesize($uri);
      list($type) = explode("/", $file_init['filemime']);
      switch ($type) {
        case 'image':
        case 'video':
          $file_init['type'] = $type;
          break;
        default:
          $file_init['type'] = 'default';
          break;
      }
    }
    $file = entity_create('file', $file_init);
  }
  return $file;
}