プロジェクト

全般

プロフィール

Bug(バグ) #3505

Yuya Watanabe さんが約11年前に更新

h3. 概要 

 
 fileMaxSizeInfo が管理画面の「アップロード画像のファイルサイズ制限」を考慮していない. 

 下記のような設定のときにレンダリングされた html 内の javascript の fileMaxSizeInfo は image_max_filesize を無視した値となっている.この fileMaxSizeInfo がなにに使われているかは調査していない. 

 <pre> 
 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 
 </pre> 

 表示されたページの中では下記のようになっている. 
 <pre> 
 var fileMaxSizeInfo = { 
   'format': '8MB', 
   'size'    : '8388608' 
 } 
 </pre> 

 h3. 原因 

 おそらくは下記部分が該当し,ここでは image_max_filesize は考慮されていないように見える. 
 <pre> 
 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     } 
 </pre>

戻る