public function beforeSave(Model $model, $options = array()) { $columns = $model->getColumnTypes(); foreach ($model->data as $modelClass => $values) { foreach ($values as $field => $value) { if (!isset($columns[$field]) or $columns[$field] != 'binary') { continue; } if (is_array($value) and isset($value['size'])) { if ($value["size"] > 0) { $fileHandler = new BlobFileHandler(); $fileHandler->loadFromFile($value['tmp_name']); if ($fileHandler->getImageWith() > $this->config['imageMaxWidth']) { $fileHandler->modify('resize', $this->config['imageMaxWidth']); // max image size $fileData = $fileHandler->store(null, $fileHandler->resourceInfo[2], 90); } else { $fileData = file_get_contents($value['tmp_name']); } $model->data[$modelClass][$field] = $fileData; } else { unset($model->data[$modelClass][$field]); } } } } return true; }