- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/site_checker.php
- Класс: CSiteCheckerTest
- Вызов: CSiteCheckerTest::check_upload
function check_upload($big = false, $raw = false)
{
if (($sp = ini_get("upload_tmp_dir")))
{
if (!file_exists($sp))
return $this->Result(false,GetMessage('SC_NO_TMP_FOLDER').' ('.htmlspecialcharsbx($sp).')');
elseif (!is_writable($sp))
return $this->Result(false,GetMessage('SC_TMP_FOLDER_PERMS').' ('.htmlspecialcharsbx($sp).')');
}
if (defined('BX_TEMPORARY_FILES_DIRECTORY'))
{
$sp = BX_TEMPORARY_FILES_DIRECTORY;
if (!file_exists($sp))
return $this->Result(false,GetMessage('SC_NO_TMP_FOLDER').' (BX_TEMPORARY_FILES_DIRECTORY: '.htmlspecialcharsbx($sp).')');
elseif (!is_writable($sp))
return $this->Result(false,GetMessage('SC_TMP_FOLDER_PERMS').' (BX_TEMPORARY_FILES_DIRECTORY: '.htmlspecialcharsbx($sp).')');
}
$binaryData = '';
for($i=40;$i<240;$i++)
$binaryData .= chr($i);
if ($big)
$binaryData = str_repeat($binaryData, 21000);
if ($raw)
$POST = $binaryData;
else
{
$boundary = '--------'.md5(checker_get_unique_id());
$POST = "--$boundaryrn";
$POST.= 'Content-Disposition: form-data; name="test_file"; filename="site_checker.bin'."rn";
$POST.= 'Content-Type: image/gif'."rn";
$POST.= "rn";
$POST.= $binaryData."rn";
$POST.= "--$boundaryrn";
}
$strRequest = "POST "."/bitrix/admin/site_checker.php?test_type=upload_test&unique_id=".checker_get_unique_id()."&big=".($big ? 1 : 0)."&raw=".($raw ? 1 : 0)." HTTP/1.1rn";
$strRequest.= "Host: ".$this->host."rn";
if (!$raw)
$strRequest.= "Content-Type: multipart/form-data; boundary=$boundaryrn";
$strRequest.= "Content-Length: ".strlen($POST)."rn";
$strRequest.= "rn";
$strRequest.= $POST;
if ($res = $this->ConnectToHost())
return IsHttpResponseSuccess($res, $strRequest);
return false;
}