/** * @return string */ public function title() { if ($this->isImage()) { return I18n::translatef('io/mimetype/image', strtoupper($this->type())); } return I18n::translatef('io/mimetype/file', strtoupper($this->type())); }
private function stashFile(Io_File $file_, $subPath_ = null) { $mimeType = $file_->getMimetype(); if (null === $mimeType) { $this->addError(I18n::translatef('ui/panel/upload/file/error/unknown_mimetype', $file_->getName())); $file_->delete(); return; } if (!$this->isValidMimetype($mimeType) || !$this->isValidFileExtension($file_->getExtension())) { $this->addError(I18n::translatef('ui/panel/upload/file/error/illegal_mimetype', $mimeType->title(), $file_->getName())); $file_->delete(); return; } if ($this->extractArchives && $mimeType->isArchive()) { if (false === isset(self::$implArchives[$mimeType->name()])) { $this->addError(I18n::translatef('ui/panel/upload/file/error/unsupported_archive', $mimeType->name())); $file_->delete(); return; } $archiveId = md5($file_->getPathAsString()); $archiveImpl = self::$implArchives[$mimeType->name()]; $archivePath = self::uploadPath($archiveId); // TODO Io_Archive_Zip $archive = new $archiveImpl(); $archive->open($file_->getPathAsString()); $archive->extractTo($archivePath); $this->scanTemporaryUploadPath(Io::path($archivePath), $subPath_); $archive->close(); $file_->delete(); return; } $file = $file_->move(self::uploadPath($subPath_)->getFile($file_->getName())); $this->m_files[$subPath_ . $file->getName()] = $file; }