Commit 211e8aea7ea1f186f76e4dda4979318566f7b8dc

Authored by bshuttle
1 parent 867c21db

- handle a change in mimetype during checkin

- be more resilient against broken installations with incorrect document-storage



git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5627 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/documentmanagement/documentutil.inc.php
@@ -75,14 +75,20 @@ class KTDocumentUtil { @@ -75,14 +75,20 @@ class KTDocumentUtil {
75 $oDocument->setMinorVersionNumber($oDocument->getMinorVersionNumber()+1); 75 $oDocument->setMinorVersionNumber($oDocument->getMinorVersionNumber()+1);
76 $oDocument->setFileSize($iFileSize); 76 $oDocument->setFileSize($iFileSize);
77 77
78 - if(is_array($aOptions)) {  
79 - $sFilename = KTUtil::arrayGet($aOptions, 'newfilename', '');  
80 - if(strlen($sFilename)) {  
81 - global $default;  
82 - $oDocument->setFileName($sFilename);  
83 - $default->log->info("renamed document " . $oDocument->getId() . " to " . $sFilename);  
84 - }  
85 - } 78 + $sFilename = $oDocument->getFileName();
  79 +
  80 + if(is_array($aOptions)) {
  81 + $sFilename = KTUtil::arrayGet($aOptions, 'newfilename', '');
  82 + if(strlen($sFilename)) {
  83 + global $default;
  84 + $oDocument->setFileName($sFilename);
  85 + $default->log->info("renamed document " . $oDocument->getId() . " to " . $sFilename);
  86 + }
  87 + }
  88 +
  89 + $sType = KTMime::getMimeTypeFromFile($sFilename);
  90 + $iMimeTypeId = KTMime::getMimeTypeID($sType, $oDocument->getFileName());
  91 + $oDocument->setMimeTypeId($iMimeTypeId);
86 92
87 $bSuccess = $oDocument->update(); 93 $bSuccess = $oDocument->update();
88 if ($bSuccess !== true) { 94 if ($bSuccess !== true) {
@@ -544,8 +550,8 @@ class KTDocumentUtil { @@ -544,8 +550,8 @@ class KTDocumentUtil {
544 $sType = KTMime::getMimeTypeFromFile($sFilename); 550 $sType = KTMime::getMimeTypeFromFile($sFilename);
545 $iMimeTypeId = KTMime::getMimeTypeID($sType, $oDocument->getFileName()); 551 $iMimeTypeId = KTMime::getMimeTypeID($sType, $oDocument->getFileName());
546 $oDocument->setMimeTypeId($iMimeTypeId); 552 $oDocument->setMimeTypeId($iMimeTypeId);
547 -  
548 - if (!$oStorage->upload($oDocument, $sFilename)) { 553 + $res = $oStorage->upload($oDocument, $sFilename);
  554 + if (($res == false) || PEAR::isError($res)) {
549 return PEAR::raiseError("Couldn't store contents"); 555 return PEAR::raiseError("Couldn't store contents");
550 } 556 }
551 KTDocumentUtil::setComplete($oDocument, "contents"); 557 KTDocumentUtil::setComplete($oDocument, "contents");