プロジェクト

全般

プロフィール

Bug(バグ) #3505

Yuya Watanabe10年以上前に更新

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>

戻る