当前位置: 首页>>代码示例>>PHP>>正文


PHP Path::convertPhysicalToLogical方法代码示例

本文整理汇总了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;
	}
开发者ID:nycmic,项目名称:bittest,代码行数:37,代码来源:fileinputreceiver.php

示例2: SaveFile

 /**
  * <p>Метод сохраняет файл и регистрирует его в таблице файлов (b_file). Статичный метод.</p>
  *
  *
  * @param array $file  Массив с данными файла формата:<br><br><pre>Array( "name" =&gt; "название файла",
  * "size" =&gt; "размер", "tmp_name" =&gt; "временный путь на сервере", "type" =&gt; "тип
  * загружаемого файла", "old_file" =&gt; "ID старого файла", "del" =&gt; "флажок -
  * удалить ли существующий файл (Y|N)", "MODULE_ID" =&gt; "название модуля",
  * "description" =&gt; "описание файла", "content" =&gt; "содержимое файла. Можно
  * сохранять файл, указывая его содержимое, а не только массив,
  * полученный при загрузке браузером."</pre> Массив такого вида может
  * быть получен, например, объединением массивов $_FILES[имя поля] и
  * Array("del" =&gt; ${"имя поля"."_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>
  * &lt;?
  * if (strlen($save)&gt;0 &amp;&amp; $REQUEST_METHOD=="POST")
  * {
  *     $arIMAGE = $_FILES["IMAGE_ID"];
  *     $z = $DB-&gt;Query("SELECT IMAGE_ID FROM b_vote WHERE ID='$ID'", false, $err_mess.__LINE__);
  *     $zr = $z-&gt;Fetch();
  *     $arIMAGE["old_file"] = $zr["IMAGE_ID"];
  *     $arIMAGE["del"] = ${"IMAGE_ID_del"};
  *     $arIMAGE["MODULE_ID"] = "vote";
  *     if (strlen($arIMAGE["name"])&gt;0 || strlen($arIMAGE["del"])&gt;0) 
  *     {
  *         $fid = <b>CFile::SaveFile</b>($arIMAGE, "vote");
  *         if (intval($fid)&gt;0) $arFields["IMAGE_ID"] = intval($fid); 
  *         else $arFields["IMAGE_ID"] = "null";
  *         $DB-&gt;Update("b_vote",$arFields,"WHERE ID='".$ID."'",$err_mess.__LINE__);
  *     }
  * }
  * ?&gt;
  * </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;
         }
//.........这里部分代码省略.........
开发者ID:andy-profi,项目名称:bxApiDocs,代码行数:101,代码来源:file.php

示例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;
 }
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:32,代码来源:onedrivehandler.php


注:本文中的Bitrix\Main\IO\Path::convertPhysicalToLogical方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。