diff -u -r -N ojs-2.2.4/classes/submission/form/MetadataForm.inc.php ojs-2.2.4-mod/classes/submission/form/MetadataForm.inc.php --- ojs-2.2.4/classes/submission/form/MetadataForm.inc.php 2009-04-08 12:42:50.000000000 -0700 +++ ojs-2.2.4-mod/classes/submission/form/MetadataForm.inc.php 2011-06-16 10:09:39.000000000 -0700 @@ -17,6 +17,8 @@ import('form.Form'); +define('COVER_PAGE_IMAGE_NAME', 'coverPage'); + class MetadataForm extends Form { /** @var Article current article */ var $article; @@ -234,6 +236,28 @@ } /** + * Check to ensure that the form is correctly validated. + */ + function validate() { + // Verify that an image cover, if supplied, is actually an image. + import('classes.file.PublicFileManager'); + $publicFileManager = new PublicFileManager(); + if ($publicFileManager->uploadedFileExists(COVER_PAGE_IMAGE_NAME)) { + $type = $publicFileManager->getUploadedFileType(COVER_PAGE_IMAGE_NAME); + $extension = $publicFileManager->getImageExtension($type); + if (!$extension) { + // Not a valid image. + $this->addError('imageFile', Locale::translate('submission.layout.imageInvalid')); + return false; + } + } + + // Fall back on parent validation + return parent::validate(); + } + + + /** * Save changes to article. * @return int the article ID */ @@ -252,11 +276,11 @@ import('file.PublicFileManager'); $publicFileManager =& new PublicFileManager(); - if ($publicFileManager->uploadedFileExists('coverPage')) { + if ($publicFileManager->uploadedFileExists(COVER_PAGE_IMAGE_NAME)) { $journal = Request::getJournal(); - $originalFileName = $publicFileManager->getUploadedFileName('coverPage'); - $newFileName = 'cover_article_' . $this->getData('articleId') . '_' . $this->getFormLocale() . '.' . $publicFileManager->getExtension($originalFileName); - $publicFileManager->uploadJournalFile($journal->getJournalId(), 'coverPage', $newFileName); + $originalFileName = $publicFileManager->getUploadedFileName(COVER_PAGE_IMAGE_NAME); + $newFileName = 'cover_article_' . $this->article->getArticleId() . '_' . $this->getFormLocale() . '.' . $publicFileManager->getExtension($originalFileName); + $publicFileManager->uploadJournalFile($journal->getJournalId(), COVER_PAGE_IMAGE_NAME, $newFileName); $article->setOriginalFileName($publicFileManager->truncateFileName($originalFileName, 127), $this->getFormLocale()); $article->setFileName($newFileName, $this->getFormLocale());