1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-26 03:30:48 +03:00

Проверка на размер файла

This commit is contained in:
chiliec 2015-02-14 21:04:33 +05:00
parent 2574199101
commit d13ec04c92
3 changed files with 22 additions and 11 deletions

View file

@ -133,7 +133,7 @@ class ModuleMedia extends ModuleORM
}
/**
* Возвращает конкретный парметры нужного типа
* Возвращает конкретный параметр нужного типа
*
* @param string $sTargetType
* @param string $sName
@ -253,11 +253,15 @@ class ModuleMedia extends ModuleORM
}
$sFileTmp = $sDirTmp . $sFileName;
if (!move_uploaded_file($aFile['tmp_name'], $sFileTmp)) {
return 'Не удалось загрузить файл';
return $this->Lang_Get('media.error.upload');
}
/**
* TODO: проверить на размер файла в байтах
* Проверка на размер файла
*/
$iMaxSizeKb = $this->GetConfigParam('max_size', $sTargetType);
if ($aFile['size'] > $iMaxSizeKb) {
return $this->Lang_Get('media.error.too_large', array('size' => $iMaxSizeKb));
}
return $this->ProcessingFile($sFileTmp, $sTargetType, $sTargetId, $sTargetTmp);
}
@ -269,7 +273,7 @@ class ModuleMedia extends ModuleORM
* TODO: файл может быть не только изображением, поэтому требуется рефакторинг
*/
if (!$aImageInfo = (@getimagesize($sFileUrl))) {
return 'Файл не является изображением';
return $this->Lang_Get('media.error.not_image');
}
$aTypeImage = array(
1 => 'gif',
@ -283,10 +287,10 @@ class ModuleMedia extends ModuleORM
*/
$rFile = fopen($sFileUrl, 'r');
if (!$rFile) {
return 'Не удалось загрузить файл';
return $this->Lang_Get('media.error.upload');
}
$iMaxSizeKb = $this->GetConfigParam('image.max_size_url', $sTargetType);
$iMaxSizeKb = $this->GetConfigParam('max_size', $sTargetType);
$iSizeKb = 0;
$sContent = '';
while (!feof($rFile) and $iSizeKb < $iMaxSizeKb) {
@ -298,8 +302,7 @@ class ModuleMedia extends ModuleORM
* значит файл имеет недопустимый размер
*/
if (!feof($rFile)) {
return 'Превышен максимальный размер файла: ' . $this->GetConfigParam('image.max_size_url',
$sTargetType) . 'Kb';
return $this->Lang_Get('media.error.too_large', array('size' => $iMaxSizeKb));
}
fclose($rFile);
/**
@ -327,7 +330,7 @@ class ModuleMedia extends ModuleORM
if (in_array($sExtension, array('jpg', 'jpeg', 'gif', 'png'))) {
return $this->ProcessingFileImage($sFileTmp, $sTargetType, $sTargetId, $sTargetTmp);
}
return 'Неверный тип файла';
return $this->Lang_Get('media.error.incorrect_type');;
}
public function ProcessingFileImage($sFileTmp, $sTargetType, $sTargetId, $sTargetTmp = null)
@ -1255,4 +1258,4 @@ class ModuleMedia extends ModuleORM
}
return false;
}
}
}

View file

@ -236,8 +236,10 @@ $config['module']['image']['params']['blog_avatar']['size_max_height'] = 1000;
/**
* Модуль Media
*/
$config['module']['media']['max_size'] = 1024; // Максимальный размер файла в kB по умолчанию
$config['module']['media']['type']['topic']['max_size'] = 1024; // Максимальный размер файла в kB в топике
$config['module']['media']['type']['comment']['max_size'] = 1024; // Максимальный размер файла в kB в комментариях
$config['module']['media']['image']['autoresize'] = true; // Разрешает автоматическое создание изображений нужного размера при их запросе
$config['module']['media']['image']['max_size_url'] = 1024; // Максимальный размер изображения в kB для загрузки по URL
$config['module']['media']['image']['sizes'] = array( // список размеров, которые необходимо делать при загрузке изображения
array(
'w' => 1000,

View file

@ -1618,6 +1618,12 @@ return array(
*/
'media' => array(
'title' => 'Загрузка медиа-файлов',
'error' => array(
'upload' => 'Не удалось загрузить файл',
'not_image' => 'Файл не является изображением',
'too_large' => 'Превышен максимальный размер файла: %%size%%Кб',
'incorrect_type' => 'Неверный тип файла',
),
'nav' => array(
'insert' => 'Вставить',
'photoset' => 'Создать фотосет',