diff --git a/controllers/class.ViewOnline.php b/controllers/class.ViewOnline.php index 7d071db17..6b9ca3f0a 100644 --- a/controllers/class.ViewOnline.php +++ b/controllers/class.ViewOnline.php @@ -49,16 +49,19 @@ class SeedDMS_Controller_ViewOnline extends SeedDMS_Controller_Common { */ $this->params['content'] = $content; if(null === $this->callHook('version')) { - header("Content-Type: " . $content->getMimeType()); - $efilename = rawurlencode($content->getOriginalFileName()); - if (!isset($settings->_viewOnlineFileTypes) || !is_array($settings->_viewOnlineFileTypes) || !in_array(strtolower($content->getFileType()), $settings->_viewOnlineFileTypes)) { - header("Content-Disposition: attachment; filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); - } else { - header("Content-Disposition: filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); - } - header("Cache-Control: must-revalidate"); + if(file_exists($dms->contentDir . $content->getPath())) { + header("Content-Type: " . $content->getMimeType()); + $efilename = rawurlencode($content->getOriginalFileName()); + if (!isset($settings->_viewOnlineFileTypes) || !is_array($settings->_viewOnlineFileTypes) || !in_array(strtolower($content->getFileType()), $settings->_viewOnlineFileTypes)) { + header("Content-Disposition: attachment; filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); + } else { + header("Content-Disposition: filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename); + } + header("Cache-Control: must-revalidate"); + header("ETag: ".$content->getChecksum()); - sendFile($dms->contentDir.$content->getPath()); + sendFile($dms->contentDir.$content->getPath()); + } } break; }