Changeset 12820 for trunk/i.php


Ignore:
Timestamp:
Jan 1, 2012, 10:10:43 PM (12 years ago)
Author:
rvelices
Message:

feature 2541 multisize

  • admin GUI for choosing derivative parameters + persistence
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/i.php

    r12802 r12820  
    168168    try
    169169    {
    170       $page['derivative_params'] = ImageParams::from_url_tokens($deriv);
     170      $page['derivative_params'] = DerivativeParams::from_url_tokens($deriv);
    171171    }
    172172    catch (Exception $e)
     
    184184}
    185185
     186
     187function send_derivative($expires)
     188{
     189  global $page;
     190  $fp = fopen($page['derivative_path'], 'rb');
     191
     192  $fstat = fstat($fp);
     193  header('Last-Modified: '.gmdate('D, d M Y H:i:s', $fstat['mtime']).' GMT');
     194  if ($expires!==false)
     195  {
     196    header('Expires: '.gmdate('D, d M Y H:i:s', $expires).' GMT');
     197  }
     198  header('Content-length: '.$fstat['size']);
     199  header('Connection: close');
     200
     201  $ctype="application/octet-stream";
     202  switch (strtolower($page['derivative_ext']))
     203  {
     204    case ".jpe": case ".jpeg": case ".jpg": $ctype="image/jpeg"; break;
     205    case ".png": $ctype="image/png"; break;
     206    case ".gif": $ctype="image/gif"; break;
     207  }
     208  header("Content-Type: $ctype");
     209
     210  fpassthru($fp);
     211  fclose($fp);
     212}
    186213
    187214
     
    220247{
    221248  $need_generate = true;
     249}
     250
     251$expires=false;
     252$now = time();
     253if ( $now > (max($src_mtime, $params->last_mod_time) + 24*3600) )
     254{// somehow arbitrary - if derivative params or src didn't change for the last 24 hours, we send an expire header for several days
     255  $expires = $now + 10*24*3600;
    222256}
    223257
     
    231265    exit;
    232266  }
    233   // todo send pass-through
     267  send_derivative($expires);
    234268}
    235269
     
    271305$image->destroy();
    272306
    273 $fp = fopen($page['derivative_path'], 'rb');
    274 
    275 $fstat = fstat($fp);
    276 header('Last-Modified: '.gmdate('D, d M Y H:i:s', $fstat['mtime']).' GMT');
    277 header('Expires: '.gmdate('D, d M Y H:i:s', time()+10*24*3600).' GMT');
    278 header('Content-length: '.$fstat['size']);
    279 header('Connection: close');
    280 
    281 $ctype="application/octet-stream";
    282 switch (strtolower($page['derivative_ext']))
    283 {
    284   case ".jpe": case ".jpeg": case ".jpg": $ctype="image/jpeg"; break;
    285   case ".png": $ctype="image/png"; break;
    286   case ".gif": $ctype="image/gif"; break;
    287 }
    288 header("Content-Type: $ctype");
    289 
    290 fpassthru($fp);
    291 fclose($fp);
     307send_derivative($expires);
    292308?>
Note: See TracChangeset for help on using the changeset viewer.