操作
Bug(バグ) #3505
未完了fileMaxSizeInfo が管理画面の「アップロード画像のファイルサイズ制限」を考慮していない
ステータス:
New(新規)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
-
開始日:
2013-11-28
期日:
進捗率:
0%
予定工数:
3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)
説明
概要¶
fileMaxSizeInfo が管理画面の「アップロード画像のファイルサイズ制限」を考慮していない.
下記のような設定のときにレンダリングされた html 内の javascript の fileMaxSizeInfo は image_max_filesize を無視した値となっている.この fileMaxSizeInfo がなにに使われているかは調査していない.
mysql> select * from sns_config where name = 'image_max_filesize'; +----+--------------------+-------+ | id | name | value | +----+--------------------+-------+ | 10 | image_max_filesize | 300K | +----+--------------------+-------+ 1 row in set (0.00 sec) mysql> show variables like 'max_allowed_packet'; +--------------------+-----------+ | Variable_name | Value | +--------------------+-----------+ | max_allowed_packet | 134217728 | +--------------------+-----------+ 1 row in set (0.00 sec) $ php -i | egrep "post_max_size|upload_max_filesize" post_max_size => 8M => 8M upload_max_filesize => 64M => 64M
表示されたページの中では下記のようになっている.
var fileMaxSizeInfo = { 'format': '8MB', 'size' : '8388608' }
原因¶
おそらくは下記部分が該当し,ここでは image_max_filesize は考慮されていないように見える.
lib/util/opTimelinePluginUtil.class.php 48 public static function getFileSizeMax() 49 { 50 $maxFileSize = min( 51 self::calcConfigSizeToByte(ini_get('post_max_size')), 52 self::calcConfigSizeToByte(ini_get('upload_max_filesize')), 53 self::DB_MAX_FILE_SIZE); 54 55 if (opTimelineDb::isMySQL()) 56 { 57 return min($maxFileSize, (int) opTimelineDb::findVariableOfMySQL('max_allowed_packet')); 58 } 59 60 return $maxFileSize; 61 }
操作