Beispiel #1
0
 public function showItem($id, $guid)
 {
     global $mtlda;
     if (empty($id) || !$mtlda->isValidId($id)) {
         static::raiseError("Require a valid \$id to show!");
         return false;
     }
     if (empty($guid) || !$mtlda->isValidGuidSyntax($guid)) {
         static::raiseError("Require a valid \$guid to show!");
         return false;
     }
     try {
         $item = new \Mtlda\Models\QueueItemModel(array('idx' => $id, 'guid' => $guid));
     } catch (\Exception $e) {
         static::raiseError("Failed to load QueueItemModel({$id}, {$guid})!");
         return false;
     }
     try {
         $storage = new \Mtlda\Controllers\StorageController();
     } catch (\Exception $e) {
         static::raiseError("Failed to load StorageController!");
         return false;
     }
     if (!($file = $storage->retrieveFile($item))) {
         static::raiseError("StorageController::retrieveFile() returned false!");
         return false;
     }
     if (!isset($file) || empty($file) || !is_array($file) || !isset($file['hash'], $file['content']) || empty($file['hash']) || empty($file['content'])) {
         static::raiseError("StorageController::retireveFile() returned an invalid file");
         return false;
     }
     if (strlen($file['content']) != $item->getFileSize()) {
         static::raiseError("File size of retrieved file does not match archive record!");
         return false;
     }
     if ($file['hash'] != $item->getFileHash()) {
         static::raiseError("File hash of retrieved file does not match archive record!");
         return false;
     }
     header('Content-Type: application/pdf');
     header('Cache-Control: no-cache, must-revalidate');
     header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
     header('Content-Length: ' . strlen($file['content']));
     print $file['content'];
     return true;
 }