- Модуль: imconnector
- Путь к файлу: ~/bitrix/modules/imconnector/lib/library.php
- Класс: BitrixImConnectorLibrary
- Вызов: Library::getNameFileIsContentDisposition
static function getNameFileIsContentDisposition($data)
{
$fileName = '';
if ($data !== '')
{
$data = rawurldecode($data);
if (preg_match("'filename*=([^;]+)'i", $data, $res))
{
[$charset, $str] = preg_split("/'[^']*'/", trim($res[1], '"'));
$fileName = Encoding::convertEncoding($str, $charset, SITE_CHARSET);
}
else if (preg_match("'filename=([^;]+)'i", $data, $res))
{
$fileName = trim($res[1], '"');
}
else if (preg_match("'filename*0=([^;]+)'i", $data, $res))
{
$fileName = trim($res[1], '"');
$i = 0;
while (preg_match("'filename*".(++$i)."=([^;]+)'i", $data, $res))
{
$fileName .= trim($res[1], '"');
}
}
else if (preg_match("'filename*0*=([^;]+)'i", $data, $res))
{
$str = trim($res[1], '"');
$i = 0;
while (preg_match("'filename*".(++$i)."*?=([^;]+)'i", $data, $res))
{
$str .= trim($res[1], '"');
}
[$charset, $str] = preg_split("/'[^']*'/", $str);
if (!empty($str))
{
$fileName = $charset ? Encoding::convertEncoding($str, $charset, SITE_CHARSET) : $str;
}
}
}
return $fileName;
}