- Модуль: webdav
- Путь к файлу: ~/bitrix/modules/webdav/classes/file.php
- Класс: CWebDavFile
- Вызов: CWebDavFile::_get_fileinfo
function _get_fileinfo($path)
{
$io = self::GetIo();
if (mb_strpos($path, $this->real_path_full) === 0)
{
$path = CWebDavBase::ConvertPathToRelative($path, $this->real_path_full);
}
$path = CWebDavBase::CleanRelativePathString($path);
if($path === false)
{
return false;
}
$fspath = $io->CombinePath($this->real_path_full, $path);
//$fspath = $path;
//if (strpos($path, $this->real_path_full) === false)
//$fspath = str_replace(array("///", "//"), "/", $this->real_path_full."/".$path);
//else
//$path = str_replace(array($this->real_path_full, "///", "//"), "/", $path);
$bDir = $io->DirectoryExists($fspath);
$info = array();
$info['path'] = ($bDir ? $this->_slashify($path) : $path);
$info['path'] = $this->MetaNamesReverse(explode('/', $info['path']), 'name', 'alias');
if (SITE_CHARSET != "UTF-8")
{
$info['path'] = $GLOBALS["APPLICATION"]->ConvertCharset($info['path'], SITE_CHARSET, "UTF-8");
}
$info['props'] = array();
if ($bDir)
$ioObj = $io->GetDirectory($fspath);
else
$ioObj = $io->GetFile($fspath);
$tzOffset = CTimeZone::GetOffset();
$info['props'][] = $this->_mkprop('creationdate', $ioObj->GetCreationTime() + $tzOffset);
$info['props'][] = $this->_mkprop('getlastmodified', $ioObj->GetModificationTime() + $tzOffset);
if ($bDir)
{
$info['props'][] = $this->_mkprop('resourcetype', 'collection');
$info['props'][] = $this->_mkprop('getcontenttype', 'httpd/unix-directory');
}
else
{
$info['props'][] = $this->_mkprop('resourcetype', '');
if ($ioObj->IsReadable())
$info['props'][] = $this->_mkprop('getcontenttype', $this->_mimetype($fspath));
else
$info['props'][] = $this->_mkprop('getcontenttype', 'application/x-non-readable');
$info['props'][] = $this->_mkprop('getcontentlength', $ioObj->GetFileSize());
}
$arProps = $this->_get_props($path);
if (is_array($arProps))
{
foreach ($arProps as $name => $prop)
{
if($name != "LOCK")
{
$info["props"][] = CWebDavBase::_mkprop($prop["ns"], $prop["name"], $prop["value"]);
}
}
}
return $info;
}