[Bio] / FortyEight / WebPage / Download.pm Repository:
ViewVC logotype

View of /FortyEight/WebPage/Download.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (download) (as text) (annotate)
Mon Jul 23 19:23:12 2007 UTC (12 years, 11 months ago) by paarmann
Branch: MAIN
CVS Tags: mgrast_dev_08112011, rast_rel_2009_05_18, mgrast_dev_08022011, rast_rel_2014_0912, rast_rel_2008_06_18, rast_rel_2008_06_16, mgrast_dev_05262011, rast_rel_2008_12_18, mgrast_dev_04082011, rast_rel_2008_07_21, rast_rel_2010_0928, rast_2008_0924, mgrast_version_3_2, mgrast_dev_12152011, rast_rel_2008_04_23, mgrast_dev_06072011, rast_rel_2008_09_30, rast_rel_2009_0925, rast_rel_2010_0526, rast_rel_2014_0729, mgrast_dev_02212011, rast_rel_2010_1206, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2010_0118, mgrast_rel_2008_0924, mgrast_rel_2008_1110_v2, rast_rel_2009_02_05, rast_rel_2011_0119, mgrast_rel_2008_0625, mgrast_release_3_0_4, mgrast_release_3_0_2, mgrast_release_3_0_3, mgrast_release_3_0_1, mgrast_dev_03312011, mgrast_release_3_1_2, mgrast_release_3_1_1, mgrast_release_3_1_0, mgrast_dev_04132011, rast_rel_2008_10_09, mgrast_dev_04012011, rast_release_2008_09_29, mgrast_rel_2008_0806, mgrast_rel_2008_0923, mgrast_rel_2008_0919, rast_rel_2009_07_09, rast_rel_2010_0827, mgrast_rel_2008_1110, myrast_33, rast_rel_2011_0928, rast_rel_2008_09_29, mgrast_rel_2008_0917, rast_rel_2008_10_29, mgrast_dev_04052011, mgrast_dev_02222011, rast_rel_2009_03_26, mgrast_dev_10262011, rast_rel_2008_11_24, rast_rel_2008_08_07, HEAD
*** empty log message ***

package WebPage::Download;

use warnings;
use strict;

use base qw( WebApp::WebPage );

use File::Basename qw(basename);
use Job48;

sub output {
  my ($self) = @_;

  $self->title('Annotation Server - Download File');
  
  my $content = '';

  # sanity check on job
  my $id = $self->application->cgi->param('job');
  my $job = Job48->new( $id, $self->application->session->user );
  unless ($job) {
    $self->application->error("Invalid job id given (id='$id').");
    return $content;
  }

  my $file = $self->application->cgi->param('file');	
  unless ($file) {
    $self->application->error("No file given.");
    return $content;
  }
  
  # check if a user is logged in
  if ($self->application->authorized(1)) {

    my @data;

    my $base = basename($file);
    my $path = $job->orgdir."/".$file;
    open(FILE, "<$path") || 
      $self->application->error("Unable to open file $base.");
    binmode(FILE) if ($self->application->cgi->param('binary')); 
    @data = <FILE>;  
    close (FILE) ;

    unless ($self->application->error) {

      print "Content-Type:application/x-download\n";  
      print "Content-Disposition:attachment;filename=$base\n\n";
      print @data;
      
      exit 1;
    }
  }
  
  # catch errors
  if ($self->application->error) {
    $content = "<p>An error has occured: ".$self->application->error().
      "<br/>Please return to the <a href='".$self->application->url."?page=Login'>login page</a>.</p>";
  }
  
  return $content;
}

1;

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3