• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/ui/uploader/storage.php
  • Класс: BitrixMainUIUploaderStorage
  • Вызов: Storage::copy
public function copy($path, array $file)
{
	$result = new Result();
	$directory = CBXVirtualIo::GetInstance()->getDirectory($path);

	$newFile = $directory->GetPathWithName()."/".$file["code"];
	$result->setData(array(
		"size" => $file["size"],
		"tmp_name" => $newFile,
		"type" => $file["type"]
	));
	if (mb_substr($newFile, -mb_strlen($file['tmp_name'])) == $file['tmp_name'])
	{

	}
	else if (!$directory->create())
	{
		$result->addError(new Error(Loc::getMessage("BXU_TemporaryDirectoryIsNotCreated"), "BXU347.1"));
	}
	elseif (array_key_exists('tmp_url', $file))
	{
		if (!((!file_exists($newFile) || @unlink($newFile)) && File::http()->download($file['tmp_url'], $newFile) !== false))
			$result->addError(new Error(Loc::getMessage("BXU_FileIsNotUploaded"), "BXU347.2.1"));
	}
	else if (!file_exists($file['tmp_name']))
	{
		$result->addError(new Error(Loc::getMessage("BXU_FileIsNotUploaded"), "BXU347.2.1"));
	}
	else if (!file_exists($file['tmp_name']))
	{
		$result->addError(new Error(Loc::getMessage("BXU_FileIsNotUploaded"), "BXU347.2.2"));
	}
	elseif (array_key_exists('start', $file))
	{
		$result = $this->copyChunk($newFile, $file);
	}
	else if (!((!file_exists($newFile) || @unlink($newFile)) && move_uploaded_file($file['tmp_name'], $newFile)))
	{
		$result->addError(new Error(Loc::getMessage("BXU_FileIsNotUploaded"), "BXU347.2.4"));
	}
	else
	{
		$result->setData(array(
			"size" => filesize($newFile),
			"tmp_name" => $newFile,
			"type" => ($file["type"] ?: CFile::GetContentType($newFile))
		));
	}
	return $result;
}