You are here

function elfinder_get_drupal_file_obj in elFinder file manager 7.3

Same name and namespace in other branches
  1. 8.2 elfinder.module \elfinder_get_drupal_file_obj()
  2. 6.2 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 inc/elfinder.drupalfs.driver.inc
Create Drupal file object
elfinder_file_download in ./elfinder.module

File

./elfinder.module, line 1013

Code

function elfinder_get_drupal_file_obj($uri) {
  global $user;
  $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 = new StdClass();
    $file->uid = $user->uid;
    $file->filename = basename($uri);
    $file->uri = $uri;
    $file->filemime = file_get_mimetype($uri);
    if (is_file(drupal_realpath($uri))) {
      $file->filesize = filesize($uri);

      // Use the file_entity module's mimetype to entity type
      // functionality if we have that method available.
      if (function_exists('file_entity_file_type')) {
        $types = file_entity_file_type($file);
        if (count($types) > 0) {
          $file->type = $types[0];
        }
        else {
          $file->type = 'default';
        }
      }
      else {
        list($type) = explode("/", $file->filemime);
        switch ($type) {
          case 'image':
          case 'video':
            $file->type = $type;
            break;
          default:
            $file->type = 'default';
            break;
        }
      }
    }
    $file->timestamp = REQUEST_TIME;
    $file->status = FILE_STATUS_PERMANENT;
  }
  return $file;
}