get('inflector')->camelize(CONFIG()->image_store); $file = dirname(__FILE__) . '/' . $image_store . '.php'; if (!is_file($file)) throw new Exception( sprintf("File not found for image store configuration '%s'.", CONFIG()->image_store ?: '[empty value]') ); require_once $file; $class = 'Post_ImageStore_' . $image_store; $object = new $class(); $object->_post = $post; return $object; } public function delete_file() { if (is_file($this->file_path())) @unlink($this->file_path()); if ($this->_post->image()) { if (file_exists($this->preview_path())) @unlink($this->preview_path()); if (file_exists($this->sample_path())) @unlink($this->sample_path()); if (file_exists($this->jpeg_path())) @unlink($this->jpeg_path()); } } public function move_file() { $this->_create_dirs($this->file_path()); if ($this->_post->is_import) rename($this->_post->tempfile_path(), $this->file_path()); else move_uploaded_file($this->_post->tempfile_path(), $this->file_path()); // chmod($this->file_path(), 0777); if ($this->_post->image()) { $this->_create_dirs($this->preview_path()); rename($this->_post->tempfile_preview_path(), $this->preview_path()); // chmod($this->preview_path(), 0777); } if (file_exists($this->_post->tempfile_sample_path())) { $this->_create_dirs($this->sample_path()); rename($this->_post->tempfile_sample_path(), $this->sample_path()); // chmod($this->sample_path(), 0777); } if (file_exists($this->_post->tempfile_jpeg_path())) { $this->_create_dirs($this->jpeg_path()); rename($this->_post->tempfile_jpeg_path(), $this->jpeg_path()); // chmod($this->jpeg_path(), 0777); } } protected function _file_hierarchy() { return substr($this->_post->md5, 0, 2).'/'.substr($this->_post->md5, 2, 2); } protected function _create_dirs($dir) { $dirs = array_filter(explode('/', str_replace(Rails::root(), '', pathinfo($dir, PATHINFO_DIRNAME)))); $dir = Rails::root() . '/'; foreach ($dirs as $d) { $dir .= $d . '/'; !is_dir($dir) && mkdir($dir); } } }