當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Filesystem::getRoot方法代碼示例

本文整理匯總了PHP中OC\Files\Filesystem::getRoot方法的典型用法代碼示例。如果您正苦於以下問題:PHP Filesystem::getRoot方法的具體用法?PHP Filesystem::getRoot怎麽用?PHP Filesystem::getRoot使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在OC\Files\Filesystem的用法示例。


在下文中一共展示了Filesystem::getRoot方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: addSendfileHeader

 /**
  * @param false|string $filename
  */
 private static function addSendfileHeader($filename)
 {
     if (isset($_SERVER['MOD_X_SENDFILE_ENABLED'])) {
         $filename = \OC\Files\Filesystem::getLocalFile($filename);
         header("X-Sendfile: " . $filename);
     }
     if (isset($_SERVER['MOD_X_SENDFILE2_ENABLED'])) {
         $filename = \OC\Files\Filesystem::getLocalFile($filename);
         if (isset($_SERVER['HTTP_RANGE']) && preg_match("/^bytes=([0-9]+)-([0-9]*)\$/", $_SERVER['HTTP_RANGE'], $range)) {
             $filelength = filesize($filename);
             if ($range[2] === "") {
                 $range[2] = $filelength - 1;
             }
             header("Content-Range: bytes {$range['1']}-{$range['2']}/" . $filelength);
             header("HTTP/1.1 206 Partial content");
             header("X-Sendfile2: " . str_replace(",", "%2c", rawurlencode($filename)) . " {$range['1']}-{$range['2']}");
         } else {
             header("X-Sendfile: " . $filename);
         }
     }
     if (isset($_SERVER['MOD_X_ACCEL_REDIRECT_ENABLED'])) {
         if (isset($_SERVER['MOD_X_ACCEL_REDIRECT_PREFIX'])) {
             $filename = $_SERVER['MOD_X_ACCEL_REDIRECT_PREFIX'] . \OC\Files\Filesystem::getLocalFile($filename);
         } else {
             $filename = \OC::$WEBROOT . '/data' . \OC\Files\Filesystem::getRoot() . $filename;
         }
         header("X-Accel-Redirect: " . $filename);
     }
 }
開發者ID:rosarion,項目名稱:core,代碼行數:32,代碼來源:files.php

示例2: testEditNoCreateHook

 public function testEditNoCreateHook()
 {
     $storage1 = $this->getTestStorage();
     $storage2 = $this->getTestStorage();
     $defaultRoot = \OC\Files\Filesystem::getRoot();
     \OC\Files\Filesystem::mount($storage1, array(), '/');
     \OC\Files\Filesystem::mount($storage2, array(), $defaultRoot);
     \OC_Hook::connect('OC_Filesystem', 'post_create', $this, 'dummyHookCreate');
     \OC_Hook::connect('OC_Filesystem', 'post_update', $this, 'dummyHookUpdate');
     \OC_Hook::connect('OC_Filesystem', 'post_write', $this, 'dummyHookWrite');
     $view = new \OC\Files\View($defaultRoot);
     $this->hookWritePath = $this->hookUpdatePath = $this->hookCreatePath = null;
     $view->file_put_contents('/asd.txt', 'foo');
     $this->assertEquals('/asd.txt', $this->hookCreatePath);
     $this->assertNull($this->hookUpdatePath);
     $this->assertEquals('/asd.txt', $this->hookWritePath);
     $this->hookWritePath = $this->hookUpdatePath = $this->hookCreatePath = null;
     $view->file_put_contents('/asd.txt', 'foo');
     $this->assertNull($this->hookCreatePath);
     $this->assertEquals('/asd.txt', $this->hookUpdatePath);
     $this->assertEquals('/asd.txt', $this->hookWritePath);
     \OC_Hook::clear('OC_Filesystem', 'post_create');
     \OC_Hook::clear('OC_Filesystem', 'post_update');
     \OC_Hook::clear('OC_Filesystem', 'post_write');
 }
開發者ID:riso,項目名稱:owncloud-core,代碼行數:25,代碼來源:view.php

示例3: getItems

 /**
  * Get shared items from the database
  * @param string $itemType
  * @param string $item Item source or target (optional)
  * @param int $shareType SHARE_TYPE_USER, SHARE_TYPE_GROUP, SHARE_TYPE_LINK, $shareTypeUserAndGroups, or $shareTypeGroupUserUnique
  * @param string $shareWith User or group the item is being shared with
  * @param string $uidOwner User that is the owner of shared items (optional)
  * @param int $format Format to convert items to with formatItems() (optional)
  * @param mixed $parameters to pass to formatItems() (optional)
  * @param int $limit Number of items to return, -1 to return all matches (optional)
  * @param boolean $includeCollections Include collection item types (optional)
  * @param boolean $itemShareWithBySource (optional)
  * @param boolean $checkExpireDate
  * @return array
  *
  * See public functions getItem(s)... for parameter usage
  *
  */
 public static function getItems($itemType, $item = null, $shareType = null, $shareWith = null, $uidOwner = null, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false, $itemShareWithBySource = false, $checkExpireDate = true)
 {
     if (!self::isEnabled()) {
         return array();
     }
     $backend = self::getBackend($itemType);
     $collectionTypes = false;
     // Get filesystem root to add it to the file target and remove from the
     // file source, match file_source with the file cache
     if ($itemType == 'file' || $itemType == 'folder') {
         if (!is_null($uidOwner)) {
             $root = \OC\Files\Filesystem::getRoot();
         } else {
             $root = '';
         }
         $where = 'INNER JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid` ';
         if (!isset($item)) {
             $where .= ' AND `file_target` IS NOT NULL ';
         }
         $where .= 'INNER JOIN `*PREFIX*storages` ON `numeric_id` = `*PREFIX*filecache`.`storage` ';
         $fileDependent = true;
         $queryArgs = array();
     } else {
         $fileDependent = false;
         $root = '';
         $collectionTypes = self::getCollectionItemTypes($itemType);
         if ($includeCollections && !isset($item) && $collectionTypes) {
             // If includeCollections is true, find collections of this item type, e.g. a music album contains songs
             if (!in_array($itemType, $collectionTypes)) {
                 $itemTypes = array_merge(array($itemType), $collectionTypes);
             } else {
                 $itemTypes = $collectionTypes;
             }
             $placeholders = join(',', array_fill(0, count($itemTypes), '?'));
             $where = ' WHERE `item_type` IN (' . $placeholders . '))';
             $queryArgs = $itemTypes;
         } else {
             $where = ' WHERE `item_type` = ?';
             $queryArgs = array($itemType);
         }
     }
     if (\OC::$server->getAppConfig()->getValue('core', 'shareapi_allow_links', 'yes') !== 'yes') {
         $where .= ' AND `share_type` != ?';
         $queryArgs[] = self::SHARE_TYPE_LINK;
     }
     if (isset($shareType)) {
         // Include all user and group items
         if ($shareType == self::$shareTypeUserAndGroups && isset($shareWith)) {
             $where .= ' AND ((`share_type` in (?, ?) AND `share_with` = ?) ';
             $queryArgs[] = self::SHARE_TYPE_USER;
             $queryArgs[] = self::$shareTypeGroupUserUnique;
             $queryArgs[] = $shareWith;
             $groups = \OC_Group::getUserGroups($shareWith);
             if (!empty($groups)) {
                 $placeholders = join(',', array_fill(0, count($groups), '?'));
                 $where .= ' OR (`share_type` = ? AND `share_with` IN (' . $placeholders . ')) ';
                 $queryArgs[] = self::SHARE_TYPE_GROUP;
                 $queryArgs = array_merge($queryArgs, $groups);
             }
             $where .= ')';
             // Don't include own group shares
             $where .= ' AND `uid_owner` != ?';
             $queryArgs[] = $shareWith;
         } else {
             $where .= ' AND `share_type` = ?';
             $queryArgs[] = $shareType;
             if (isset($shareWith)) {
                 $where .= ' AND `share_with` = ?';
                 $queryArgs[] = $shareWith;
             }
         }
     }
     if (isset($uidOwner)) {
         $where .= ' AND `uid_owner` = ?';
         $queryArgs[] = $uidOwner;
         if (!isset($shareType)) {
             // Prevent unique user targets for group shares from being selected
             $where .= ' AND `share_type` != ?';
             $queryArgs[] = self::$shareTypeGroupUserUnique;
         }
         if ($fileDependent) {
             $column = 'file_source';
//.........這裏部分代碼省略.........
開發者ID:evanjt,項目名稱:core,代碼行數:101,代碼來源:share.php

示例4: shouldEmitHooks

 private function shouldEmitHooks($path = '')
 {
     if ($path && Cache\Scanner::isPartialFile($path)) {
         return false;
     }
     if (!Filesystem::$loaded) {
         return false;
     }
     $defaultRoot = Filesystem::getRoot();
     if ($defaultRoot === null) {
         return false;
     }
     if ($this->fakeRoot === $defaultRoot) {
         return true;
     }
     return strlen($this->fakeRoot) > strlen($defaultRoot) && substr($this->fakeRoot, 0, strlen($defaultRoot) + 1) === $defaultRoot . '/';
 }
開發者ID:adolfo2103,項目名稱:hcloudfilem,代碼行數:17,代碼來源:view.php

示例5: move2trash

 /**
  * move file to the trash bin
  *
  * @param string $file_path path to the deleted file/directory relative to the files root directory
  */
 public static function move2trash($file_path)
 {
     // get the user for which the filesystem is setup
     $root = Filesystem::getRoot();
     list(, $user) = explode('/', $root);
     $size = 0;
     list($owner, $ownerPath) = self::getUidAndFilename($file_path);
     $view = new \OC\Files\View('/' . $user);
     // file has been deleted in between
     if (!$view->file_exists('/files/' . $file_path)) {
         return true;
     }
     self::setUpTrash($user);
     if ($owner !== $user) {
         // also setup for owner
         self::setUpTrash($owner);
     }
     $path_parts = pathinfo($file_path);
     $filename = $path_parts['basename'];
     $location = $path_parts['dirname'];
     $timestamp = time();
     $userTrashSize = self::getTrashbinSize($user);
     // disable proxy to prevent recursive calls
     $trashPath = '/files_trashbin/files/' . $filename . '.d' . $timestamp;
     /** @var \OC\Files\Storage\Storage $trashStorage */
     list($trashStorage, $trashInternalPath) = $view->resolvePath($trashPath);
     /** @var \OC\Files\Storage\Storage $sourceStorage */
     list($sourceStorage, $sourceInternalPath) = $view->resolvePath('/files/' . $file_path);
     try {
         $sizeOfAddedFiles = $sourceStorage->filesize($sourceInternalPath);
         if ($trashStorage->file_exists($trashInternalPath)) {
             $trashStorage->unlink($trashInternalPath);
         }
         $trashStorage->moveFromStorage($sourceStorage, $sourceInternalPath, $trashInternalPath);
     } catch (\OCA\Files_Trashbin\Exceptions\CopyRecursiveException $e) {
         $sizeOfAddedFiles = false;
         if ($trashStorage->file_exists($trashInternalPath)) {
             $trashStorage->unlink($trashInternalPath);
         }
         \OCP\Util::writeLog('files_trashbin', 'Couldn\'t move ' . $file_path . ' to the trash bin', \OC_log::ERROR);
     }
     if ($sourceStorage->file_exists($sourceInternalPath)) {
         // failed to delete the original file, abort
         $sourceStorage->unlink($sourceInternalPath);
         return false;
     }
     $view->getUpdater()->rename('/files/' . $file_path, $trashPath);
     if ($sizeOfAddedFiles !== false) {
         $size = $sizeOfAddedFiles;
         $query = \OC_DB::prepare("INSERT INTO `*PREFIX*files_trash` (`id`,`timestamp`,`location`,`user`) VALUES (?,?,?,?)");
         $result = $query->execute(array($filename, $timestamp, $location, $user));
         if (!$result) {
             \OCP\Util::writeLog('files_trashbin', 'trash bin database couldn\'t be updated', \OC_log::ERROR);
         }
         \OCP\Util::emitHook('\\OCA\\Files_Trashbin\\Trashbin', 'post_moveToTrash', array('filePath' => \OC\Files\Filesystem::normalizePath($file_path), 'trashPath' => \OC\Files\Filesystem::normalizePath($filename . '.d' . $timestamp)));
         $size += self::retainVersions($file_path, $filename, $owner, $ownerPath, $timestamp);
         // if owner !== user we need to also add a copy to the owners trash
         if ($user !== $owner) {
             self::copyFilesToOwner($file_path, $owner, $ownerPath, $timestamp);
         }
     }
     $userTrashSize += $size;
     self::scheduleExpire($userTrashSize, $user);
     // if owner !== user we also need to update the owners trash size
     if ($owner !== $user) {
         $ownerTrashSize = self::getTrashbinSize($owner);
         $ownerTrashSize += $size;
         self::scheduleExpire($ownerTrashSize, $owner);
     }
     return $sizeOfAddedFiles === false ? false : true;
 }
開發者ID:julakali,項目名稱:core,代碼行數:76,代碼來源:trashbin.php

示例6: getItems

    /**
     * Get shared items from the database
     * @param string Item type
     * @param string Item source or target (optional)
     * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, SHARE_TYPE_LINK, $shareTypeUserAndGroups, or $shareTypeGroupUserUnique
     * @param string User or group the item is being shared with
     * @param string User that is the owner of shared items (optional)
     * @param int Format to convert items to with formatItems()
     * @param mixed Parameters to pass to formatItems()
     * @param int Number of items to return, -1 to return all matches (optional)
     * @param bool Include collection item types (optional)
     * @param bool TODO (optional)
     * @prams bool check expire date
     * @return mixed
     *
     * See public functions getItem(s)... for parameter usage
     *
     */
    private static function getItems($itemType, $item = null, $shareType = null, $shareWith = null, $uidOwner = null, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false, $itemShareWithBySource = false, $checkExpireDate = true)
    {
        if (!self::isEnabled()) {
            if ($limit == 1 || isset($uidOwner) && isset($item)) {
                return false;
            } else {
                return array();
            }
        }
        $backend = self::getBackend($itemType);
        $collectionTypes = false;
        // Get filesystem root to add it to the file target and remove from the
        // file source, match file_source with the file cache
        if ($itemType == 'file' || $itemType == 'folder') {
            if (!is_null($uidOwner)) {
                $root = \OC\Files\Filesystem::getRoot();
            } else {
                $root = '';
            }
            $where = 'INNER JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid`';
            if (!isset($item)) {
                $where .= ' WHERE `file_target` IS NOT NULL';
            }
            $fileDependent = true;
            $queryArgs = array();
        } else {
            $fileDependent = false;
            $root = '';
            if ($includeCollections && !isset($item) && ($collectionTypes = self::getCollectionItemTypes($itemType))) {
                // If includeCollections is true, find collections of this item type, e.g. a music album contains songs
                if (!in_array($itemType, $collectionTypes)) {
                    $itemTypes = array_merge(array($itemType), $collectionTypes);
                } else {
                    $itemTypes = $collectionTypes;
                }
                $placeholders = join(',', array_fill(0, count($itemTypes), '?'));
                $where = ' WHERE `item_type` IN (' . $placeholders . '))';
                $queryArgs = $itemTypes;
            } else {
                $where = ' WHERE `item_type` = ?';
                $queryArgs = array($itemType);
            }
        }
        if (\OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes') !== 'yes') {
            $where .= ' AND `share_type` != ?';
            $queryArgs[] = self::SHARE_TYPE_LINK;
        }
        if (isset($shareType)) {
            // Include all user and group items
            if ($shareType == self::$shareTypeUserAndGroups && isset($shareWith)) {
                $where .= ' AND `share_type` IN (?,?,?)';
                $queryArgs[] = self::SHARE_TYPE_USER;
                $queryArgs[] = self::SHARE_TYPE_GROUP;
                $queryArgs[] = self::$shareTypeGroupUserUnique;
                $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith));
                $placeholders = join(',', array_fill(0, count($userAndGroups), '?'));
                $where .= ' AND `share_with` IN (' . $placeholders . ')';
                $queryArgs = array_merge($queryArgs, $userAndGroups);
                // Don't include own group shares
                $where .= ' AND `uid_owner` != ?';
                $queryArgs[] = $shareWith;
            } else {
                $where .= ' AND `share_type` = ?';
                $queryArgs[] = $shareType;
                if (isset($shareWith)) {
                    $where .= ' AND `share_with` = ?';
                    $queryArgs[] = $shareWith;
                }
            }
        }
        if (isset($uidOwner)) {
            $where .= ' AND `uid_owner` = ?';
            $queryArgs[] = $uidOwner;
            if (!isset($shareType)) {
                // Prevent unique user targets for group shares from being selected
                $where .= ' AND `share_type` != ?';
                $queryArgs[] = self::$shareTypeGroupUserUnique;
            }
            if ($itemType == 'file' || $itemType == 'folder') {
                $column = 'file_source';
            } else {
                $column = 'item_source';
//.........這裏部分代碼省略.........
開發者ID:CDN-Sparks,項目名稱:owncloud,代碼行數:101,代碼來源:share.php

示例7: move2trash

 /**
  * move file to the trash bin
  *
  * @param string $file_path path to the deleted file/directory relative to the files root directory
  */
 public static function move2trash($file_path)
 {
     // get the user for which the filesystem is setup
     $root = Filesystem::getRoot();
     list(, $user) = explode('/', $root);
     $size = 0;
     list($owner, $ownerPath) = self::getUidAndFilename($file_path);
     // file has been deleted in between
     if (empty($ownerPath)) {
         return false;
     }
     self::setUpTrash($user);
     $view = new \OC\Files\View('/' . $user);
     $path_parts = pathinfo($file_path);
     $filename = $path_parts['basename'];
     $location = $path_parts['dirname'];
     $timestamp = time();
     $userTrashSize = self::getTrashbinSize($user);
     // disable proxy to prevent recursive calls
     $proxyStatus = \OC_FileProxy::$enabled;
     \OC_FileProxy::$enabled = false;
     $trashPath = '/files_trashbin/files/' . $filename . '.d' . $timestamp;
     try {
         $sizeOfAddedFiles = self::copy_recursive('/files/' . $file_path, $trashPath, $view);
     } catch (\OCA\Files_Trashbin\Exceptions\CopyRecursiveException $e) {
         $sizeOfAddedFiles = false;
         if ($view->file_exists($trashPath)) {
             $view->deleteAll($trashPath);
         }
         \OC_Log::write('files_trashbin', 'Couldn\'t move ' . $file_path . ' to the trash bin', \OC_log::ERROR);
     }
     \OC_FileProxy::$enabled = $proxyStatus;
     if ($sizeOfAddedFiles !== false) {
         $size = $sizeOfAddedFiles;
         $query = \OC_DB::prepare("INSERT INTO `*PREFIX*files_trash` (`id`,`timestamp`,`location`,`user`) VALUES (?,?,?,?)");
         $result = $query->execute(array($filename, $timestamp, $location, $user));
         if (!$result) {
             \OC_Log::write('files_trashbin', 'trash bin database couldn\'t be updated', \OC_log::ERROR);
         }
         \OCP\Util::emitHook('\\OCA\\Files_Trashbin\\Trashbin', 'post_moveToTrash', array('filePath' => \OC\Files\Filesystem::normalizePath($file_path), 'trashPath' => \OC\Files\Filesystem::normalizePath($filename . '.d' . $timestamp)));
         $size += self::retainVersions($file_path, $filename, $timestamp);
         $size += self::retainEncryptionKeys($file_path, $filename, $timestamp);
         // if owner !== user we need to also add a copy to the owners trash
         if ($user !== $owner) {
             self::copyFilesToOwner($file_path, $owner, $ownerPath, $timestamp);
         }
     }
     $userTrashSize += $size;
     $userTrashSize -= self::expire($userTrashSize, $user);
     // if owner !== user we also need to update the owners trash size
     if ($owner !== $user) {
         $ownerTrashSize = self::getTrashbinSize($owner);
         $ownerTrashSize += $size;
         $ownerTrashSize -= self::expire($ownerTrashSize, $owner);
     }
 }
開發者ID:riso,項目名稱:owncloud-core,代碼行數:61,代碼來源:trashbin.php

示例8: shouldEmitHooks

	private function shouldEmitHooks($path = '') {
		if ($path && Cache\Scanner::isPartialFile($path)) {
			return false;
		}
		if (!Filesystem::$loaded) {
			return false;
		}
		$defaultRoot = Filesystem::getRoot();
		if ($defaultRoot === null) {
			return false;
		}
		if ($this->fakeRoot === $defaultRoot) {
			return true;
		}
		$fullPath = $this->getAbsolutePath($path);
		return (strlen($fullPath) > strlen($defaultRoot)) && (substr($fullPath, 0, strlen($defaultRoot) + 1) === $defaultRoot . '/');
	}
開發者ID:ninjasilicon,項目名稱:core,代碼行數:17,代碼來源:view.php

示例9: getRoot

 /**
  * @brief get the relative path of the root data directory for the current user
  * @return string
  *
  * @deprecated OC_Filesystem is replaced by \OC\Files\Filesystem
  * Returns path like /admin/files
  */
 public static function getRoot()
 {
     return \OC\Files\Filesystem::getRoot();
 }
開發者ID:omusico,項目名稱:isle-web-framework,代碼行數:11,代碼來源:filesystem.php


注:本文中的OC\Files\Filesystem::getRoot方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。