public function saveFile($dst_dir, $dst_filename = null)
    {
        if (!$this->isUploaded()) {
            return false;
        }

        if ($dst_filename === null) {
            $dst_filename = $this->getUniqueFileName($dst_dir);
        }

        if (is_dir($dst_dir)) {
            return move_uploaded_file(
                $this->file['tmp_name'],
                $dst_dir . '/' . $dst_filename
            );
        } else {
            throw new SwatException(
                "Destination of '{$dst_dir}' is not a " .
                    'directory or does not exist.'
            );
        }
    }