public function setExtension($extension = False) { if ($this->getIsFile()) { if ($this->getIsUploaded()) { $this->addLog('setExtension() is unavailable for uploaded files. Please copy/move uploaded file from temporary directory', 'warning'); return False; } if ($this->getWriteable() && $extension !== False) { $extension = trim($extension); // Drop current extension. if ($extension === null || $extension == '') { $new_base_name = $this->getFilename(); } else { // Apply new extension. $extension = ltrim($extension, '.'); if ($this->getExtension() === null) { $new_base_name = $this->getFilename() . '.' . $extension; } else { $new_base_name = str_replace($this->getExtension(), $extension, $this->getBasename()); } } if ($this->rename($new_base_name)) { return $this; } } $this->addLog('Unable to set file extension "' . $extension . '"'); return False; } $this->addLog('setExtension() is available only for files', 'warning'); return False; }