• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/document/googlehandler.php
  • Класс: BitrixDiskDocumentGoogleHandler
  • Вызов: GoogleHandler::getDownloadUrl
protected function getDownloadUrl(FileData $fileData, $fileMetaData = array())
{
	if(!$this->checkRequiredInputParams($fileData->toArray(), array(
		'id',
	)))
	{
		return null;
	}

	if(!$fileMetaData)
	{
		$fileMetaData = $this->getFileMetadataInternal($fileData);
	}

	if(!$fileMetaData)
	{
		return null;
	}

	if(!$this->isGoogleDocument($fileMetaData['mimeType']))
	{
		return self::API_URL_V3 . "/files/{$fileData->getId()}?alt=media";
	}

	$exportMimeByInternalMimeType = $this->getExportMimeByInternalMimeType($fileMetaData['mimeType']);
	$extensionByMimeType = TypeFile::getExtensionByMimeType($exportMimeByInternalMimeType);
	if (in_array($extensionByMimeType, array('docx')))
	{
		return "https://docs.google.com/document/d/{$fileData->getId()}/export?format=docx";
	}
	if (in_array($extensionByMimeType, array('pptx')))
	{
		return "https://docs.google.com/presentation/d/{$fileData->getId()}/export/pptx";
	}
	if (in_array($extensionByMimeType, array('xlsx')))
	{
		return "https://docs.google.com/spreadsheets/d/{$fileData->getId()}/export?format=xlsx";
	}


	return
		self::API_URL_V3 .
		"/files/{$fileData->getId()}/export?" .
		http_build_query(array('mimeType' => $this->getExportMimeByInternalMimeType($fileMetaData['mimeType'])));
}