$fileName = strtr( $fileName, '\\/', '__' );
// Actually fetch the image. Method depends on whether it is archived or not.
- if ( $isOld ) {
+ if ( $isTemp ) {
+ $repo = RepoGroup::singleton()->getLocalRepo()->getTempRepo();
+ $img = new UnregisteredLocalFile( null, $repo,
+ # Temp files are hashed based on the name without the timestamp.
+ # The thumbnails will be hashed based on the entire name however.
+ # @TODO: fix this convention to actually be reasonable.
+ $repo->getZonePath( 'public' ) . '/' . $repo->getTempHashPath( $fileName ) . $fileName
+ );
+ } elseif ( $isOld ) {
// Format is <timestamp>!<name>
$bits = explode( '!', $fileName, 2 );
if ( count( $bits ) != 2 ) {
return;
}
$img = RepoGroup::singleton()->getLocalRepo()->newFromArchiveName( $title, $fileName );
- } elseif ( $isTemp ) {
- $repo = RepoGroup::singleton()->getLocalRepo()->getTempRepo();
- // Format is <timestamp>!<name> or just <name>
- $bits = explode( '!', $fileName, 2 );
- // Get the name without the timestamp so hash paths are correctly computed
- $title = Title::makeTitleSafe( NS_FILE, isset( $bits[1] ) ? $bits[1] : $fileName );
- if ( !$title ) {
- wfThumbError( 404, wfMessage( 'badtitletext' )->text() );
- wfProfileOut( __METHOD__ );
- return;
- }
- $img = new UnregisteredLocalFile( $title, $repo,
- $repo->getZonePath( 'public' ) . '/' . $repo->getTempHashPath( $fileName ) . $fileName
- );
} else {
$img = wfLocalFile( $fileName );
}
if ( $wgVaryOnXFP ) {
$varyHeader[] = 'X-Forwarded-Proto';
}
- $response->header( 'Vary: ' . implode( ', ', $varyHeader ) );
+ if ( count( $varyHeader ) ) {
+ $response->header( 'Vary: ' . implode( ', ', $varyHeader ) );
+ }
wfProfileOut( __METHOD__ );
return;
} else {
}
$thumbPath = $img->getThumbPath( $thumbName );
if ( $img->getRepo()->fileExists( $thumbPath ) ) {
- $headers[] = 'Vary: ' . implode( ', ', $varyHeader );
+ if ( count( $varyHeader ) ) {
+ $headers[] = 'Vary: ' . implode( ', ', $varyHeader );
+ }
$img->getRepo()->streamFile( $thumbPath, $headers );
wfProfileOut( __METHOD__ );
return;
wfProfileOut( __METHOD__ );
return;
}
- $headers[] = 'Vary: ' . implode( ', ', $varyHeader );
+
+ if ( count( $varyHeader ) ) {
+ $headers[] = 'Vary: ' . implode( ', ', $varyHeader );
+ }
// Thumbnail isn't already there, so create the new thumbnail...
try {