18 require_once dirname(__FILE__).
'/../../form_question_rule/form_question_rule.inc';
44 parent::__construct($assetid);
59 '<=' => translate(
'core_form_rule_file_size_<='),
60 '>=' => translate(
'core_form_rule_file_size_>='),
83 function evaluate($answer, $rule_data, &$q_asset)
86 if (!empty($_FILES[
'q'.$q_asset->id][
'size'])) {
87 $filesize = $_FILES[
'q'.$q_asset->id][
'size'];
90 $extra_data = $q_asset->getExtraData();
91 $temp_file = array_get_index($extra_data,
'temp_filesystem_path',
'');
92 $filesize = (int) filesize ($temp_file);
95 $operator = array_get_index($rule_data,
'operator',
'<=');
99 $comparison = array_get_index($rule_data,
'value',
'').array_get_index($rule_data,
'multiplier',
'');
102 $comparison = strtolower(trim($comparison));
103 $comp_value = floatval($comparison);
107 if ((substr($comparison,-2) ==
'kb') || (substr($comparison,-1) ==
'k')) {
109 }
else if ((substr($comparison,-2) ==
'mb') || (substr($comparison,-1) ==
'm')) {
110 $comp_value *= 1024 * 1024;
111 }
else if ((substr($comparison,-2) ==
'gb') || (substr($comparison,-1) ==
'g')) {
112 $comp_value *= 1024 * 1024 * 1024;
115 $expression =
"return $filesize $operator $comp_value;";
116 $valid = eval($expression);
134 $operator = array_get_index($rule_data,
'operator',
'<=');
135 $comparison = array_get_index($rule_data,
'value',
'').
' '.array_get_index($rule_data,
'multiplier',
'');
137 $error_str = translate(
'core_form_rule_file_size_desc_'.$operator, $q_asset->attr(
'name'), $comparison);