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 75 $oDocument->setMinorVersionNumber($oDocument->getMinorVersionNumber()+1);
76 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 93 $bSuccess = $oDocument->update();
88 94 if ($bSuccess !== true) {
... ... @@ -544,8 +550,8 @@ class KTDocumentUtil {
544 550 $sType = KTMime::getMimeTypeFromFile($sFilename);
545 551 $iMimeTypeId = KTMime::getMimeTypeID($sType, $oDocument->getFileName());
546 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 555 return PEAR::raiseError("Couldn't store contents");
550 556 }
551 557 KTDocumentUtil::setComplete($oDocument, "contents");
... ...