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; }