本文整理汇总了PHP中Bitrix\Main\IO\Path::convertPhysicalToLogical方法的典型用法代码示例。如果您正苦于以下问题:PHP Path::convertPhysicalToLogical方法的具体用法?PHP Path::convertPhysicalToLogical怎么用?PHP Path::convertPhysicalToLogical使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bitrix\Main\IO\Path
的用法示例。
在下文中一共展示了Path::convertPhysicalToLogical方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: handleFileByPath
protected static function handleFileByPath($hash, &$file)
{
$key = "default";
$path = $file["files"][$key]["tmp_name"];
$io = \CBXVirtualIo::GetInstance();
$newPath = substr($path, 0, (strlen($path) - strlen($key))).$file["name"];
$f = $io->GetFile($path);
$newF = $io->GetFile($newPath);
if ((!$newF->IsExists() || $newF->unlink()) && $io->Rename($path, $newPath))
{
$f = $io->GetFile($newPath);
$file["files"][$key]["tmp_name"] = $newPath;
}
if (self::resizePicture($file["files"][$key], array("method" => "resample")))
{
clearstatcache();
$file["files"][$key]["wasChangedOnServer"] = true;
$file["files"][$key]["size"] = filesize($file["files"][$key]["tmp_name"]);
$file["files"][$key]["sizeFormatted"] = \CFile::FormatSize($file["files"][$key]["size"]);
}
$file["path"] = \Bitrix\Main\IO\Path::convertPhysicalToLogical($f->GetPathWithName());
if (strpos($file["path"], $_SERVER["DOCUMENT_ROOT"]) === 0)
$file["path"] = str_replace("//", "/", "/".substr($file["path"], strlen($_SERVER["DOCUMENT_ROOT"])));
$file["uploadId"] = $file["path"];
$file["files"][$key]["url"] =
$file["files"][$key]["tmp_url"] = \Bitrix\Main\IO\Path::convertPhysicalToUri($file["path"]);
$file["type"] = $file["files"][$key]["type"];
return true;
}
示例2: SaveFile
/**
* <p>Метод сохраняет файл и регистрирует его в таблице файлов (b_file). Статичный метод.</p>
*
*
* @param array $file Массив с данными файла формата:<br><br><pre>Array( "name" => "название файла",
* "size" => "размер", "tmp_name" => "временный путь на сервере", "type" => "тип
* загружаемого файла", "old_file" => "ID старого файла", "del" => "флажок -
* удалить ли существующий файл (Y|N)", "MODULE_ID" => "название модуля",
* "description" => "описание файла", "content" => "содержимое файла. Можно
* сохранять файл, указывая его содержимое, а не только массив,
* полученный при загрузке браузером."</pre> Массив такого вида может
* быть получен, например, объединением массивов $_FILES[имя поля] и
* Array("del" => ${"имя поля"."_del"}, "MODULE_ID" = "название модуля");
*
* @param string $save_path Путь к папке в которой хранятся файлы (относительно папки /upload).
*
* @param bool $ForceMD5 = false Необязательный. По умолчанию <i>false</i>.
*
* @param bool $SkipExt = false) Необязательный. По умолчанию <i>false</i>.
*
* @return mixed <p>Метод возвращает числовой идентификатор сохранённого и
* зарегистрированного в системе файла.</p>
*
* <h4>Example</h4>
* <pre>
* <?
* if (strlen($save)>0 && $REQUEST_METHOD=="POST")
* {
* $arIMAGE = $_FILES["IMAGE_ID"];
* $z = $DB->Query("SELECT IMAGE_ID FROM b_vote WHERE ID='$ID'", false, $err_mess.__LINE__);
* $zr = $z->Fetch();
* $arIMAGE["old_file"] = $zr["IMAGE_ID"];
* $arIMAGE["del"] = ${"IMAGE_ID_del"};
* $arIMAGE["MODULE_ID"] = "vote";
* if (strlen($arIMAGE["name"])>0 || strlen($arIMAGE["del"])>0)
* {
* $fid = <b>CFile::SaveFile</b>($arIMAGE, "vote");
* if (intval($fid)>0) $arFields["IMAGE_ID"] = intval($fid);
* else $arFields["IMAGE_ID"] = "null";
* $DB->Update("b_vote",$arFields,"WHERE ID='".$ID."'",$err_mess.__LINE__);
* }
* }
* ?>
* </pre>
*
*
* <h4>See Also</h4>
* <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/main/functions/file/rewritefile.php">RewriteFile</a> </li> <li> <a
* href="http://dev.1c-bitrix.ru/api_help/main/reference/cfile/inputfile.php">CFile::InputFile</a> </li> </ul><a
* name="examples"></a>
*
*
* @static
* @link http://dev.1c-bitrix.ru/api_help/main/reference/cfile/savefile.php
* @author Bitrix
*/
public static function SaveFile($arFile, $strSavePath, $bForceMD5 = false, $bSkipExt = false)
{
$strFileName = GetFileName($arFile["name"]);
/* filename.gif */
if (isset($arFile["del"]) && $arFile["del"] != '') {
CFile::DoDelete($arFile["old_file"]);
if ($strFileName == '') {
return "NULL";
}
}
if ($arFile["name"] == '') {
if (isset($arFile["description"]) && intval($arFile["old_file"]) > 0) {
CFile::UpdateDesc($arFile["old_file"], $arFile["description"]);
}
return false;
}
if (isset($arFile["content"])) {
if (!isset($arFile["size"])) {
$arFile["size"] = CUtil::BinStrlen($arFile["content"]);
}
} else {
try {
$file = new IO\File(IO\Path::convertPhysicalToLogical($arFile["tmp_name"]));
$arFile["size"] = $file->getSize();
} catch (IO\IoException $e) {
$arFile["size"] = 0;
}
}
$arFile["ORIGINAL_NAME"] = $strFileName;
//translit, replace unsafe chars, etc.
$strFileName = self::transformName($strFileName, $bForceMD5, $bSkipExt);
//transformed name must be valid, check disk quota, etc.
if (self::validateFile($strFileName, $arFile) !== "") {
return false;
}
if ($arFile["type"] == "image/pjpeg" || $arFile["type"] == "image/jpg") {
$arFile["type"] = "image/jpeg";
}
$bExternalStorage = false;
foreach (GetModuleEvents("main", "OnFileSave", true) as $arEvent) {
if (ExecuteModuleEventEx($arEvent, array(&$arFile, $strFileName, $strSavePath, $bForceMD5, $bSkipExt))) {
$bExternalStorage = true;
break;
}
//.........这里部分代码省略.........
示例3: createFileInternal
protected function createFileInternal(FileData $fileData)
{
if (!$this->checkRequiredInputParams($fileData->toArray(), array('name', 'src'))) {
return null;
}
$accessToken = $this->getAccessToken();
$fileName = $fileData->getName();
$fileName = $this->convertToUtf8($fileName);
$http = new HttpClient(array('redirect' => false, 'socketTimeout' => 10, 'streamTimeout' => 30, 'version' => HttpClient::HTTP_1_1));
$fileName = urlencode($fileName);
$accessToken = urlencode($accessToken);
if ($http->query('PUT', "https://apis.live.net/v5.0/me/skydrive/files/{$fileName}?access_token={$accessToken}", IO\File::getFileContents(IO\Path::convertPhysicalToLogical($fileData->getSrc()))) === false) {
$errorString = implode('; ', array_keys($http->getError()));
$this->errorCollection->add(array(new Error($errorString, self::ERROR_HTTP_FILE_INTERNAL)));
return null;
}
if (!$this->checkHttpResponse($http)) {
return null;
}
$finalOutput = Json::decode($http->getResult());
if ($finalOutput === null) {
$this->errorCollection->add(array(new Error('Could not decode response as json', self::ERROR_BAD_JSON)));
return null;
}
$fileData->setId($finalOutput['id']);
$props = $this->getFileData($fileData);
if ($props === null) {
return null;
}
$fileData->setLinkInService($props['link']);
return $fileData;
}