/** * Create a new temporary file from a paper file. * @param $paperFile object * @param $userId int * @return object The new TemporaryFile or false on failure */ function paperToTemporaryFile($paperFile, $userId) { // Get the file extension, then rename the file. $fileExtension = $this->parseFileExtension($paperFile->getFileName()); if (!$this->fileExists($this->filesDir, 'dir')) { // Try to create destination directory $this->mkdirtree($this->filesDir); } $newFileName = basename(tempnam($this->filesDir, $fileExtension)); if (!$newFileName) { return false; } if (copy($paperFile->getFilePath(), $this->filesDir . $newFileName)) { $temporaryFileDao =& DAORegistry::getDAO('TemporaryFileDAO'); $temporaryFile = new TemporaryFile(); $temporaryFile->setUserId($userId); $temporaryFile->setFileName($newFileName); $temporaryFile->setFileType($paperFile->getFileType()); $temporaryFile->setFileSize($paperFile->getFileSize()); $temporaryFile->setOriginalFileName(TemporaryFileManager::truncateFileName($paperFile->getOriginalFileName(), 127)); $temporaryFile->setDateUploaded(Core::getCurrentDate()); $temporaryFileDao->insertTemporaryFile($temporaryFile); return $temporaryFile; } else { return false; } }
/** * Upload the file and add it to the database. * @param $fileName string index into the $_FILES array * @param $userId int * @return object The new TemporaryFile or false on failure */ function handleUpload($fileName, $userId) { // Get the file extension, then rename the file. $fileExtension = $this->parseFileExtension($this->getUploadedFileName($fileName)); if (!$this->fileExists($this->filesDir, 'dir')) { // Try to create destination directory $this->mkdirtree($this->filesDir); } $newFileName = basename(tempnam($this->filesDir, $fileExtension)); if (!$newFileName) { return false; } if ($this->uploadFile($fileName, $this->filesDir . $newFileName)) { $temporaryFileDao =& DAORegistry::getDAO('TemporaryFileDAO'); $temporaryFile = new TemporaryFile(); $temporaryFile->setUserId($userId); $temporaryFile->setFileName($newFileName); $temporaryFile->setFileType(String::mime_content_type($this->filesDir . $newFileName)); $temporaryFile->setFileSize($_FILES[$fileName]['size']); $temporaryFile->setOriginalFileName(TemporaryFileManager::truncateFileName($_FILES[$fileName]['name'], 127)); $temporaryFile->setDateUploaded(Core::getCurrentDate()); $temporaryFileDao->insertTemporaryFile($temporaryFile); return $temporaryFile; } else { return false; } }