summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/avatarsettings.php4
-rw-r--r--actions/grouplogo.php4
-rw-r--r--lib/common.php1
-rw-r--r--lib/imagefile.php30
4 files changed, 33 insertions, 6 deletions
diff --git a/actions/avatarsettings.php b/actions/avatarsettings.php
index 68c6ce701..0f8122c07 100644
--- a/actions/avatarsettings.php
+++ b/actions/avatarsettings.php
@@ -75,7 +75,7 @@ class AvatarsettingsAction extends AccountSettingsAction
function getInstructions()
{
- return _('You can upload your personal avatar.');
+ return _('You can upload your personal avatar. The maximum file size is '.ImageFile::maxFileSize().'.');
}
/**
@@ -155,7 +155,7 @@ class AvatarsettingsAction extends AccountSettingsAction
$this->element('input', array('name' => 'MAX_FILE_SIZE',
'type' => 'hidden',
'id' => 'MAX_FILE_SIZE',
- 'value' => MAX_AVATAR_SIZE));
+ 'value' => ImageFile::maxFileSize(true)));
$this->elementEnd('li');
$this->elementEnd('ul');
diff --git a/actions/grouplogo.php b/actions/grouplogo.php
index 294005f1b..473303373 100644
--- a/actions/grouplogo.php
+++ b/actions/grouplogo.php
@@ -152,7 +152,7 @@ class GrouplogoAction extends Action
function getInstructions()
{
- return _('You can upload a logo image for your group.');
+ return _('You can upload a logo image for your group. The maximum file size is '.ImageFile::maxFileSize().'.');
}
/**
@@ -229,7 +229,7 @@ class GrouplogoAction extends Action
$this->element('input', array('name' => 'MAX_FILE_SIZE',
'type' => 'hidden',
'id' => 'MAX_FILE_SIZE',
- 'value' => MAX_AVATAR_SIZE));
+ 'value' => ImageFile::maxFileSize(true)));
$this->elementEnd('li');
$this->elementEnd('ul');
diff --git a/lib/common.php b/lib/common.php
index 825ba0ff7..482800876 100644
--- a/lib/common.php
+++ b/lib/common.php
@@ -24,7 +24,6 @@ define('LACONICA_VERSION', '0.7.0');
define('AVATAR_PROFILE_SIZE', 96);
define('AVATAR_STREAM_SIZE', 48);
define('AVATAR_MINI_SIZE', 24);
-define('MAX_AVATAR_SIZE', 256 * 1024);
define('NOTICES_PER_PAGE', 20);
define('PROFILES_PER_PAGE', 20);
diff --git a/lib/imagefile.php b/lib/imagefile.php
index 5e9913235..74c3d14f0 100644
--- a/lib/imagefile.php
+++ b/lib/imagefile.php
@@ -72,7 +72,7 @@ class ImageFile
break;
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
- throw new Exception(_('That file is too big.'));
+ throw new Exception(_('That file is too big. The maximum file size is '.$this->maxFileSize().'.'));
return;
case UPLOAD_ERR_PARTIAL:
@unlink($_FILES[$param]['tmp_name']);
@@ -182,4 +182,32 @@ class ImageFile
{
@unlink($this->filename);
}
+
+ static function maxFileSize($return_bytes = false)
+ {
+ $limit = min(ImageFile::strToInt(ini_get('post_max_size')), ImageFile::strToInt(ini_get('upload_max_filesize')), ImageFile::strToInt(ini_get('memory_limit')));
+
+ if ($return_bytes) {
+ return $limit;
+ }
+
+ return ($limit/(1024*1024)).'MB';
+ }
+
+ static function strToInt($str)
+ {
+ $unit = substr($str, -1);
+ $num = substr($str, 0, -1);
+
+ switch(strtoupper($unit)){
+ case 'G':
+ $num *= 1024;
+ case 'M':
+ $num *= 1024;
+ case 'K':
+ $num *= 1024;
+ }
+
+ return $num;
+ }
} \ No newline at end of file