- Модуль: 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;
}