mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-01 08:12:17 +09:00
회원 프로필 사진 업로드 시 파일 용량 제한 설정 추가
xpressengine/xe-core#2202 - 기본 값 : 용량 제한하지 않음 - KB 단위로 지정할 수 있으며 - 이미지가 리사이즈 과정을 거치는 경우 리사이즈 된 파일의 용량으로 적용 함
This commit is contained in:
parent
4dede913e4
commit
2119c84b77
4 changed files with 175 additions and 48 deletions
|
|
@ -1060,13 +1060,12 @@ class memberController extends member
|
|||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_profile_image');
|
||||
// Return if member module is set not to use an image name or the user is not an administrator ;
|
||||
$oModuleModel = getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
$oMemberModel = getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
if($logged_info->is_admin != 'Y' && $config->profile_image != 'Y') return $this->stop('msg_not_uploaded_profile_image');
|
||||
|
||||
$this->insertProfileImage($member_srl, $file['tmp_name']);
|
||||
// Page refresh
|
||||
//$this->setRefreshPage();
|
||||
$output = $this->insertProfileImage($member_srl, $file['tmp_name']);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberModifyInfo');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
|
|
@ -1084,38 +1083,69 @@ class memberController extends member
|
|||
{
|
||||
$oMemberModel = getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
|
||||
|
||||
// Get an image size
|
||||
$max_width = $config->profile_image_max_width;
|
||||
if(!$max_width) $max_width = "90";
|
||||
$max_height = $config->profile_image_max_height;
|
||||
if(!$max_height) $max_height = "90";
|
||||
// Get a target path to save
|
||||
$target_path = sprintf('files/member_extra_info/profile_image/%s', getNumberingPath($member_srl));
|
||||
FileHandler::makeDir($target_path);
|
||||
$max_filesize = $config->profile_image_max_filesize;
|
||||
|
||||
Context::loadLang(_XE_PATH_ . 'modules/file/lang');
|
||||
|
||||
// Get file information
|
||||
list($width, $height, $type, $attrs) = @getimagesize($target_file);
|
||||
FileHandler::clearStatCache($target_file);
|
||||
list($width, $height, $type) = @getimagesize($target_file);
|
||||
if(IMAGETYPE_PNG == $type) $ext = 'png';
|
||||
elseif(IMAGETYPE_JPEG == $type) $ext = 'jpg';
|
||||
elseif(IMAGETYPE_GIF == $type) $ext = 'gif';
|
||||
else
|
||||
{
|
||||
return;
|
||||
return $this->stop('msg_not_uploaded_profile_image');
|
||||
}
|
||||
|
||||
FileHandler::removeFilesInDir($target_path);
|
||||
$target_path = sprintf('files/member_extra_info/profile_image/%s', getNumberingPath($member_srl));
|
||||
FileHandler::makeDir($target_path);
|
||||
|
||||
$target_filename = sprintf('%s%d.%s', $target_path, $member_srl, $ext);
|
||||
// Convert if the image size is larger than a given size
|
||||
if($width > $max_width || $height > $max_height)
|
||||
{
|
||||
FileHandler::createImageFile($target_file, $target_filename, $max_width, $max_height, $ext);
|
||||
$temp_filename = sprintf('files/cache/tmp/profile_image_%d.%s', $member_srl, $ext);
|
||||
FileHandler::createImageFile($target_file, $temp_filename, $max_width, $max_height, $ext);
|
||||
|
||||
// 파일 용량 제한
|
||||
FileHandler::clearStatCache($temp_filename);
|
||||
$filesize = filesize($temp_filename);
|
||||
if($max_filesize && $filesize > ($max_filesize * 1024))
|
||||
{
|
||||
FileHandler::removeFile($temp_filename);
|
||||
return $this->stop(implode(' ' , array(
|
||||
Context::getLang('msg_not_uploaded_profile_image'),
|
||||
Context::getLang('msg_exceeds_limit_size')
|
||||
)));
|
||||
}
|
||||
|
||||
FileHandler::removeFilesInDir($target_path);
|
||||
FileHandler::moveFile($temp_filename, $target_filename);
|
||||
FileHandler::clearStatCache($target_filename);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 파일 용량 제한
|
||||
$filesize = filesize($target_file);
|
||||
if($max_filesize && $filesize > ($max_filesize * 1024))
|
||||
{
|
||||
return $this->stop(implode(' ' , array(
|
||||
Context::getLang('msg_not_uploaded_profile_image'),
|
||||
Context::getLang('msg_exceeds_limit_size')
|
||||
)));
|
||||
}
|
||||
|
||||
FileHandler::removeFilesInDir($target_path);
|
||||
@copy($target_file, $target_filename);
|
||||
FileHandler::clearStatCache($target_filename);
|
||||
}
|
||||
|
||||
return new BaseObject(0, 'success');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1135,11 +1165,13 @@ class memberController extends member
|
|||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_name');
|
||||
// Return if member module is set not to use an image name or the user is not an administrator ;
|
||||
$oModuleModel = getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
$oMemberModel = getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
if($logged_info->is_admin != 'Y' && $config->image_name != 'Y') return $this->stop('msg_not_uploaded_image_name');
|
||||
|
||||
$this->insertImageName($member_srl, $file['tmp_name']);
|
||||
$output = $this->insertImageName($member_srl, $file['tmp_name']);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// Page refresh
|
||||
//$this->setRefreshPage();
|
||||
|
||||
|
|
@ -1157,23 +1189,63 @@ class memberController extends member
|
|||
*/
|
||||
function insertImageName($member_srl, $target_file)
|
||||
{
|
||||
$oModuleModel = getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
$oMemberModel = getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
|
||||
// Get an image size
|
||||
$max_width = $config->image_name_max_width;
|
||||
if(!$max_width) $max_width = "90";
|
||||
$max_height = $config->image_name_max_height;
|
||||
if(!$max_height) $max_height = "20";
|
||||
$max_filesize = $config->image_name_max_filesize;
|
||||
|
||||
Context::loadLang(_XE_PATH_ . 'modules/file/lang');
|
||||
|
||||
// Get a target path to save
|
||||
$target_path = sprintf('files/member_extra_info/image_name/%s/', getNumberingPath($member_srl));
|
||||
FileHandler::makeDir($target_path);
|
||||
|
||||
$target_filename = sprintf('%s%d.gif', $target_path, $member_srl);
|
||||
// Get file information
|
||||
list($width, $height, $type, $attrs) = @getimagesize($target_file);
|
||||
list($width, $height, $type) = @getimagesize($target_file);
|
||||
// Convert if the image size is larger than a given size or if the format is not a gif
|
||||
if($width > $max_width || $height > $max_height || $type!=1) FileHandler::createImageFile($target_file, $target_filename, $max_width, $max_height, 'gif');
|
||||
else @copy($target_file, $target_filename);
|
||||
if($width > $max_width || $height > $max_height || $type!=1)
|
||||
{
|
||||
$temp_filename = sprintf('files/cache/tmp/image_name_%d.gif', $member_srl, $ext);
|
||||
FileHandler::createImageFile($target_file, $temp_filename, $max_width, $max_height, 'gif');
|
||||
|
||||
// 파일 용량 제한
|
||||
FileHandler::clearStatCache($temp_filename);
|
||||
$filesize = filesize($temp_filename);
|
||||
if($max_filesize && $filesize > ($max_filesize * 1024))
|
||||
{
|
||||
FileHandler::removeFile($temp_filename);
|
||||
return $this->stop(implode(' ' , array(
|
||||
Context::getLang('msg_not_uploaded_image_name'),
|
||||
Context::getLang('msg_exceeds_limit_size')
|
||||
)));
|
||||
}
|
||||
|
||||
FileHandler::removeFilesInDir($target_path);
|
||||
FileHandler::moveFile($temp_filename, $target_filename);
|
||||
FileHandler::clearStatCache($target_filename);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 파일 용량 제한
|
||||
$filesize = filesize($target_file);
|
||||
if($max_filesize && $filesize > ($max_filesize * 1024))
|
||||
{
|
||||
return $this->stop(implode(' ' , array(
|
||||
Context::getLang('msg_not_uploaded_image_name'),
|
||||
Context::getLang('msg_exceeds_limit_size')
|
||||
)));
|
||||
}
|
||||
|
||||
FileHandler::removeFilesInDir($target_path);
|
||||
@copy($target_file, $target_filename);
|
||||
FileHandler::clearStatCache($target_filename);
|
||||
}
|
||||
|
||||
return new BaseObject(0, 'success');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1244,13 +1316,12 @@ class memberController extends member
|
|||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_mark');
|
||||
// Membership in the images mark the module using the ban was set by an administrator or return;
|
||||
$oModuleModel = getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
$oMemberModel = getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
if($logged_info->is_admin != 'Y' && $config->image_mark != 'Y') return $this->stop('msg_not_uploaded_image_mark');
|
||||
|
||||
$this->insertImageMark($member_srl, $file['tmp_name']);
|
||||
// Page refresh
|
||||
//$this->setRefreshPage();
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberModifyInfo');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
|
|
@ -1266,13 +1337,15 @@ class memberController extends member
|
|||
*/
|
||||
function insertImageMark($member_srl, $target_file)
|
||||
{
|
||||
$oModuleModel = getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
$oMemberModel = getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
|
||||
// Get an image size
|
||||
$max_width = $config->image_mark_max_width;
|
||||
if(!$max_width) $max_width = "20";
|
||||
$max_height = $config->image_mark_max_height;
|
||||
if(!$max_height) $max_height = "20";
|
||||
$max_filesize = $config->image_mark_max_filesize;
|
||||
|
||||
Context::loadLang(_XE_PATH_ . 'modules/file/lang');
|
||||
|
||||
$target_path = sprintf('files/member_extra_info/image_mark/%s/', getNumberingPath($member_srl));
|
||||
FileHandler::makeDir($target_path);
|
||||
|
|
@ -1281,8 +1354,45 @@ class memberController extends member
|
|||
// Get file information
|
||||
list($width, $height, $type, $attrs) = @getimagesize($target_file);
|
||||
|
||||
if($width > $max_width || $height > $max_height || $type!=1) FileHandler::createImageFile($target_file, $target_filename, $max_width, $max_height, 'gif');
|
||||
else @copy($target_file, $target_filename);
|
||||
if($width > $max_width || $height > $max_height || $type!=1)
|
||||
{
|
||||
$temp_filename = sprintf('files/cache/tmp/image_mark_%d.gif', $member_srl);
|
||||
FileHandler::createImageFile($target_file, $temp_filename, $max_width, $max_height, 'gif');
|
||||
|
||||
// 파일 용량 제한
|
||||
FileHandler::clearStatCache($temp_filename);
|
||||
$filesize = filesize($temp_filename);
|
||||
if($max_filesize && $filesize > ($max_filesize * 1024))
|
||||
{
|
||||
FileHandler::removeFile($temp_filename);
|
||||
return $this->stop(implode(' ' , array(
|
||||
Context::getLang('msg_not_uploaded_group_image_mark'),
|
||||
Context::getLang('msg_exceeds_limit_size')
|
||||
)));
|
||||
}
|
||||
|
||||
FileHandler::removeFilesInDir($target_path);
|
||||
FileHandler::moveFile($temp_filename, $target_filename);
|
||||
FileHandler::clearStatCache($target_filename);
|
||||
}
|
||||
else
|
||||
{
|
||||
$filesize = filesize($target_file);
|
||||
if($max_filesize && $filesize > ($max_filesize * 1024))
|
||||
{
|
||||
FileHandler::removeFile($target_file);
|
||||
return $this->stop(implode(' ' , array(
|
||||
Context::getLang('msg_not_uploaded_group_image_mark'),
|
||||
Context::getLang('msg_exceeds_limit_size')
|
||||
)));
|
||||
}
|
||||
|
||||
FileHandler::removeFilesInDir($target_path);
|
||||
@copy($target_file, $target_filename);
|
||||
FileHandler::clearStatCache($target_filename);
|
||||
}
|
||||
|
||||
return new BaseObject(0, 'success');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue