~jstys-z/helioviewer.org/client5

« back to all changes in this revision

Viewing changes to api/src/Image/SubFieldImage.php

  • Committer: Keith Hughitt
  • Date: 2010-08-25 18:39:52 UTC
  • mto: This revision was merged to the branch mainline in revision 525.
  • Revision ID: hughitt1@kore-20100825183952-vc2bjsw80kmh1h5v
Dynamo error-handling overhauled: Individual log files created for each error incident (except in the cases of expected errors). Run-time errors all return JSON "error" field. Both high-level and low-level description of movie related errors included.

Show diffs side-by-side

added added

removed removed

Lines of Context:
306
306
            unlink($grayscale);
307
307
 
308
308
        } catch(Exception $e) {
309
 
            logErrorMsg($e->getMessage(), true);
 
309
            throw $e;
310
310
                      
311
311
            //Clean-up and exit
312
312
            $this->_abort($this->outputFile);
411
411
        $gd   = null;
412
412
        $clut = $this->colorTable;
413
413
 
414
 
        try {
415
 
            if (file_exists($input)) {
416
 
                $gd = imagecreatefrompng($input);
417
 
            } else {
418
 
                throw new Exception("Unable to apply color-table: $input does not exist.");
419
 
            }
420
 
 
421
 
            if (!$gd) {
422
 
                throw new Exception("Unable to apply color-table: $input is not a valid image.");
423
 
            }
424
 
 
425
 
        } catch(Exception $e) {
426
 
            logErrorMsg($e->getMessage(), true);
427
 
        }
 
414
        if (file_exists($input)) {
 
415
            $gd = imagecreatefrompng($input);
 
416
        } else {
 
417
            throw new Exception("Unable to apply color-table: $input does not exist.");
 
418
        }
 
419
 
 
420
        if (!$gd) {
 
421
            throw new Exception("Unable to apply color-table: $input is not a valid image.");
 
422
        }
 
423
 
428
424
        $ctable = imagecreatefrompng($clut);
429
425
 
430
426
        for ($i = 0; $i <= 255; $i++) {
459
455
     */
460
456
    public function display()
461
457
    {
462
 
        try {
463
 
            //header("Cache-Control: public, max-age=" . $lifetime * 60);
464
 
            $headers = apache_request_headers();
 
458
        //header("Cache-Control: public, max-age=" . $lifetime * 60);
 
459
        $headers = apache_request_headers();
 
460
        
 
461
        // Enable caching of images served by PHP
 
462
        // http://us.php.net/manual/en/function.header.php#61903
 
463
        $lastModified = 'Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($this->outputFile)).' GMT';
 
464
        if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == filemtime($this->outputFile))) {
 
465
            // Cache is current (304)
 
466
            header($lastModified, true, 304);    
 
467
        } else {
 
468
            // Image not in cache or out of date (200)
 
469
            header($lastModified, true, 200);
 
470
 
 
471
            header('Content-Length: '.filesize($this->outputFile));
 
472
 
 
473
            if ($this->format == "png") {
 
474
                header("Content-Type: image/png");
 
475
            } else {
 
476
                header("Content-Type: image/jpeg");
 
477
            }
 
478
 
 
479
            // Filename & Content-length
 
480
            $exploded = explode("/", $this->outputFile);
 
481
            $filename = end($exploded);
 
482
            header("Content-Disposition: inline; filename=\"$filename\"");
465
483
            
466
 
            // Enable caching of images served by PHP
467
 
            // http://us.php.net/manual/en/function.header.php#61903
468
 
            $lastModified = 'Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($this->outputFile)).' GMT';
469
 
            if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == filemtime($this->outputFile))) {
470
 
                // Cache is current (304)
471
 
                header($lastModified, true, 304);    
472
 
            } else {
473
 
                // Image not in cache or out of date (200)
474
 
                header($lastModified, true, 200);
475
 
 
476
 
                header('Content-Length: '.filesize($this->outputFile));
477
 
 
478
 
                if ($this->format == "png") {
479
 
                    header("Content-Type: image/png");
480
 
                } else {
481
 
                    header("Content-Type: image/jpeg");
482
 
                }
483
 
 
484
 
                // Filename & Content-length
485
 
                $exploded = explode("/", $this->outputFile);
486
 
                $filename = end($exploded);
487
 
                header("Content-Disposition: inline; filename=\"$filename\"");
488
 
                
489
 
                if (!readfile($this->outputFile)) {
490
 
                    throw new Exception("Unable to read tile from cache: $filename");
491
 
                }
492
 
 
 
484
            if (!readfile($this->outputFile)) {
 
485
                throw new Exception("Unable to read tile from cache: $filename");
493
486
            }
494
 
        } catch (Exception $e) {
495
 
            logErrorMsg($error, true);
 
487
 
496
488
        }
497
489
    }
498
490
}