* Stream the file if there were no errors
*
* @param array $headers Additional HTTP headers to send on success
- * @return bool Success
+ * @return Status
+ * @since 1.27
*/
- public function streamFile( $headers = array() ) {
+ public function streamFileWithStatus( $headers = array() ) {
if ( !$this->path ) {
- return false;
+ return Status::newFatal( 'backend-fail-stream', '<no path>' );
} elseif ( FileBackend::isStoragePath( $this->path ) ) {
$be = $this->file->getRepo()->getBackend();
-
- return $be->streamFile( array( 'src' => $this->path, 'headers' => $headers ) )->isOK();
+ return $be->streamFile( array( 'src' => $this->path, 'headers' => $headers ) );
} else { // FS-file
- return StreamFile::stream( $this->getLocalCopyPath(), $headers );
+ $success = StreamFile::stream( $this->getLocalCopyPath(), $headers );
+ return $success ? Status::newGood() : Status::newFatal( 'backend-fail-stream', $this->path );
}
}
+ /**
+ * Stream the file if there were no errors
+ *
+ * @deprecated since 1.26, use streamFileWithStatus
+ * @param array $headers Additional HTTP headers to send on success
+ * @return bool Success
+ */
+ public function streamFile( $headers = array() ) {
+ $this->streamFileWithStatus( $headers )->isOK();
+ }
+
/**
* Wrap some XHTML text in an anchor tag with the given attributes
*