From 211e8aea7ea1f186f76e4dda4979318566f7b8dc Mon Sep 17 00:00:00 2001 From: bshuttle Date: Mon, 3 Jul 2006 13:03:59 +0000 Subject: [PATCH] - handle a change in mimetype during checkin - be more resilient against broken installations with incorrect document-storage --- lib/documentmanagement/documentutil.inc.php | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/documentmanagement/documentutil.inc.php b/lib/documentmanagement/documentutil.inc.php index d638861..15852a4 100644 --- a/lib/documentmanagement/documentutil.inc.php +++ b/lib/documentmanagement/documentutil.inc.php @@ -75,14 +75,20 @@ class KTDocumentUtil { $oDocument->setMinorVersionNumber($oDocument->getMinorVersionNumber()+1); $oDocument->setFileSize($iFileSize); - if(is_array($aOptions)) { - $sFilename = KTUtil::arrayGet($aOptions, 'newfilename', ''); - if(strlen($sFilename)) { - global $default; - $oDocument->setFileName($sFilename); - $default->log->info("renamed document " . $oDocument->getId() . " to " . $sFilename); - } - } + $sFilename = $oDocument->getFileName(); + + if(is_array($aOptions)) { + $sFilename = KTUtil::arrayGet($aOptions, 'newfilename', ''); + if(strlen($sFilename)) { + global $default; + $oDocument->setFileName($sFilename); + $default->log->info("renamed document " . $oDocument->getId() . " to " . $sFilename); + } + } + + $sType = KTMime::getMimeTypeFromFile($sFilename); + $iMimeTypeId = KTMime::getMimeTypeID($sType, $oDocument->getFileName()); + $oDocument->setMimeTypeId($iMimeTypeId); $bSuccess = $oDocument->update(); if ($bSuccess !== true) { @@ -544,8 +550,8 @@ class KTDocumentUtil { $sType = KTMime::getMimeTypeFromFile($sFilename); $iMimeTypeId = KTMime::getMimeTypeID($sType, $oDocument->getFileName()); $oDocument->setMimeTypeId($iMimeTypeId); - - if (!$oStorage->upload($oDocument, $sFilename)) { + $res = $oStorage->upload($oDocument, $sFilename); + if (($res == false) || PEAR::isError($res)) { return PEAR::raiseError("Couldn't store contents"); } KTDocumentUtil::setComplete($oDocument, "contents"); -- libgit2 0.21.4