/**
     * Insert a new submission file.
     * @param $submissionFile SubmissionFile
     * @param $sourceFile string The place where the physical file
     *  resides right now or the file name in the case of an upload.
     *  The file will be copied to its canonical target location.
     * @param $isUpload boolean set to true if the file has just been
     *  uploaded.
     * @return SubmissionFile the inserted file
     */
    function insertObject($submissionFile, $sourceFile, $isUpload = false)
    {
        $fileId = $submissionFile->getFileId();
        if (!is_numeric($submissionFile->getRevision())) {
            // Set the initial revision.
            $submissionFile->setRevision(1);
        }
        if (!is_bool($submissionFile->getViewable())) {
            // Set the viewable default.
            $submissionFile->setViewable(false);
        }
        $params = array((int) $submissionFile->getRevision(), (int) $submissionFile->getSubmissionId(), is_null($submissionFile->getSourceFileId()) ? null : (int) $submissionFile->getSourceFileId(), is_null($submissionFile->getSourceRevision()) ? null : (int) $submissionFile->getSourceRevision(), $submissionFile->getFileType(), (int) $submissionFile->getFileSize(), $submissionFile->getOriginalFileName(), (int) $submissionFile->getFileStage(), (bool) $submissionFile->getViewable() ? 1 : 0, is_null($submissionFile->getUploaderUserId()) ? null : (int) $submissionFile->getUploaderUserId(), is_null($submissionFile->getUserGroupId()) ? null : (int) $submissionFile->getUserGroupId(), is_null($submissionFile->getAssocType()) ? null : (int) $submissionFile->getAssocType(), is_null($submissionFile->getAssocId()) ? null : (int) $submissionFile->getAssocId(), is_null($submissionFile->getGenreId()) ? null : (int) $submissionFile->getGenreId(), $submissionFile->getDirectSalesPrice(), $submissionFile->getSalesType());
        if ($fileId) {
            array_unshift($params, (int) $fileId);
        }
        $this->update(sprintf('INSERT INTO submission_files
				(' . ($fileId ? 'file_id, ' : '') . 'revision, submission_id, source_file_id, source_revision, file_type, file_size, original_file_name, file_stage, date_uploaded, date_modified, viewable, uploader_user_id, user_group_id, assoc_type, assoc_id, genre_id, direct_sales_price, sales_type)
				VALUES
				(' . ($fileId ? '?, ' : '') . '?, ?, ?, ?, ?, ?, ?, ?, %s, %s, ?, ?, ?, ?, ?, ?, ?, ?)', $this->datetimeToDB($submissionFile->getDateUploaded()), $this->datetimeToDB($submissionFile->getDateModified())), $params);
        if (!$fileId) {
            $submissionFile->setFileId($this->_getInsertId('submission_files', 'file_id'));
        }
        $reviewStage = in_array($submissionFile->getFileStage(), array(SUBMISSION_FILE_REVIEW_FILE, SUBMISSION_FILE_REVIEW_ATTACHMENT, SUBMISSION_FILE_REVIEW_REVISION));
        if (!$submissionFile->getName(AppLocale::getPrimaryLocale())) {
            if ($reviewStage) {
                $submissionFile->setName($submissionFile->_generateName(true), AppLocale::getPrimaryLocale());
            } else {
                $submissionFile->setName($submissionFile->_generateName(), AppLocale::getPrimaryLocale());
            }
        } else {
            if ($reviewStage && $submissionFile->getName(AppLocale::getPrimaryLocale()) == $submissionFile->_generateName()) {
                $submissionFile->setName($submissionFile->_generateName(true), AppLocale::getPrimaryLocale());
            }
        }
        $this->updateLocaleFields($submissionFile);
        // Determine the final destination of the file (requires
        // the file id we just generated).
        $targetFilePath = $submissionFile->getFilePath();
        // Only copy the file if it is not yet in the target position.
        if ($isUpload || $sourceFile != $targetFilePath) {
            // Copy the file from its current location to the target destination.
            import('lib.pkp.classes.file.FileManager');
            $fileManager = new FileManager();
            if ($isUpload) {
                $success = $fileManager->uploadFile($sourceFile, $targetFilePath);
            } else {
                assert(is_readable($sourceFile));
                $success = $fileManager->copyFile($sourceFile, $targetFilePath);
            }
            if (!$success) {
                // If the copy/upload operation fails then remove
                // the already inserted meta-data.
                $this->deleteObject($submissionFile);
                $nullVar = null;
                return $nullVar;
            }
        }
        assert(is_readable($targetFilePath));
        return $submissionFile;
    }
Пример #2
0
 /**
  * Upload a new file.
  */
 function fileUpload($args)
 {
     FilesHandler::parseDirArg($args, $currentDir, $parentDir);
     $currentPath = FilesHandler::getRealFilesDir($currentDir);
     import('lib.pkp.classes.file.FileManager');
     $fileMgr = new FileManager();
     if ($fileMgr->uploadedFileExists('file')) {
         $destPath = $currentPath . '/' . FilesHandler::cleanFileName($fileMgr->getUploadedFileName('file'));
         @$fileMgr->uploadFile('file', $destPath);
     }
     Request::redirect(null, null, 'files', explode('/', $currentDir));
 }
Пример #3
0
 /**
  * Upload a new file.
  * @param $args array
  * @param $request PKPRequest
  */
 function fileUpload($args, $request)
 {
     $this->validate();
     $this->_parseDirArg($args, $currentDir, $parentDir);
     $currentPath = $this->_getRealFilesDir($request, $currentDir);
     import('lib.pkp.classes.file.FileManager');
     $fileManager = new FileManager();
     if ($fileManager->uploadedFileExists('file')) {
         $destPath = $currentPath . '/' . $this->_cleanFileName($fileManager->getUploadedFileName('file'));
         @$fileManager->uploadFile('file', $destPath);
     }
     $request->redirect(null, null, 'files', explode('/', $currentDir));
 }
Пример #4
0
 /**
  * Uploads multiple files and store it into given pathBase. it basicaly 
  * called the uploads single file and iterate it for each files.
  * @param CUploadedFile[] $files multiple files
  * @return boolean true whether the uploads is succeed
  */
 public static function uploadFiles($files, $pathBase = 'cache/')
 {
     $isSuccess = true;
     $path = Yii::app()->basePath . '/../' . $pathBase;
     FileManager::createFolder($path);
     foreach ($files as $index => $file) {
         if (!FileManager::uploadFile($file, $pathBase)) {
             $isSuccess = false;
             break;
         }
     }
     return $isSuccess;
 }
    /**
     * @see SubmissionFileDAODelegate::insert()
     * @param $monographFile MonographFile
     * @return MonographFile
     */
    function &insertObject(&$monographFile, $sourceFile, $isUpload = false)
    {
        $fileId = $monographFile->getFileId();
        if (!is_numeric($monographFile->getRevision())) {
            // Set the initial revision.
            $monographFile->setRevision(1);
        }
        if (!is_bool($monographFile->getViewable())) {
            // Set the viewable default.
            $monographFile->setViewable(false);
        }
        $params = array((int) $monographFile->getRevision(), (int) $monographFile->getMonographId(), is_null($monographFile->getSourceFileId()) ? null : (int) $monographFile->getSourceFileId(), is_null($monographFile->getSourceRevision()) ? null : (int) $monographFile->getSourceRevision(), $monographFile->getFileType(), (int) $monographFile->getFileSize(), $monographFile->getOriginalFileName(), (int) $monographFile->getFileStage(), (bool) $monographFile->getViewable(), is_null($monographFile->getUploaderUserId()) ? null : (int) $monographFile->getUploaderUserId(), is_null($monographFile->getUserGroupId()) ? null : (int) $monographFile->getUserGroupId(), is_null($monographFile->getAssocType()) ? null : (int) $monographFile->getAssocType(), is_null($monographFile->getAssocId()) ? null : (int) $monographFile->getAssocId(), is_null($monographFile->getGenreId()) ? null : (int) $monographFile->getGenreId());
        if ($fileId) {
            array_unshift($params, $fileId);
        }
        $this->update(sprintf('INSERT INTO monograph_files
				(' . ($fileId ? 'file_id, ' : '') . 'revision, monograph_id, source_file_id, source_revision, file_type, file_size, original_file_name, file_stage, date_uploaded, date_modified, viewable, uploader_user_id, user_group_id, assoc_type, assoc_id, genre_id)
				VALUES
				(' . ($fileId ? '?, ' : '') . '?, ?, ?, ?, ?, ?, ?, ?, %s, %s, ?, ?, ?, ?, ?, ?)', $this->datetimeToDB($monographFile->getDateUploaded()), $this->datetimeToDB($monographFile->getDateModified())), $params);
        if (!$fileId) {
            $monographFile->setFileId($this->getInsertId('monograph_files', 'monograph_id'));
        }
        $this->updateLocaleFields($monographFile);
        // Determine the final destination of the file (requires
        // the file id we just generated).
        $targetFilePath = $monographFile->getFilePath();
        // Only copy the file if it is not yet in the target position.
        if ($isUpload || $sourceFile != $targetFilePath) {
            // Copy the file from its current location to the target destination.
            import('lib.pkp.classes.file.FileManager');
            if ($isUpload) {
                $success = FileManager::uploadFile($sourceFile, $targetFilePath);
            } else {
                assert(is_readable($sourceFile));
                $success = FileManager::copyFile($sourceFile, $targetFilePath);
            }
            if (!$success) {
                // If the copy/upload operation fails then remove
                // the already inserted meta-data.
                $this->deleteObject($monographFile);
                $nullVar = null;
                return $nullVar;
            }
        }
        assert(is_readable($targetFilePath));
        return $monographFile;
    }
Пример #6
0
 /**
  * Upload a new file.
  * @param $args array
  * @param $request PKPRequest
  */
 function fileUpload($args, &$request)
 {
     $this->validate();
     $this->_parseDirArg($args, $currentDir, $parentDir);
     $currentPath = $this->_getRealFilesDir($request, $currentDir);
     import('lib.pkp.classes.file.FileManager');
     $fileManager = new FileManager();
     if ($success = $fileManager->uploadedFileExists('file')) {
         $destPath = $currentPath . '/' . $this->_cleanFileName($fileManager->getUploadedFileName('file'));
         $success = $fileManager->uploadFile('file', $destPath);
     }
     if (!$success) {
         $templateMgr =& TemplateManager::getManager($request);
         $this->setupTemplate($request, true);
         $templateMgr->assign('pageTitle', 'manager.filesBrowser');
         $templateMgr->assign('message', 'common.uploadFailed');
         $templateMgr->assign('backLink', $request->url(null, null, null, 'files', explode('/', $currentDir)));
         $templateMgr->assign('backLinkLabel', 'manager.filesBrowser');
         return $templateMgr->display('common/message.tpl');
     }
     $request->redirect(null, null, null, 'files', explode('/', $currentDir));
 }
Пример #7
0
 function uploadFile($fileName, $destFileName)
 {
     return parent::uploadFile($fileName, $this->filesDir . $destFileName);
 }