http://www.perlmonks.org?node_id=1049600


in reply to Re: cgi download and delete file
in thread cgi download and delete file

Thank you very much! Anyway, I think there is something I am getting wrong... When I use the cgi::application's header_prop (in the download_file subroutine) what I'm actually doing is a redirection to the download window, is it right? Cause I tried to make a redirection after the execution of the subroutine, but in this case the download doesn't start. If I put a sleep command after the subroutine, the script executes before the sleep command and then launches the download. So...I don't really understand this behaviour. I tried :
$self->download_zip(); sleep 5; my $filename = "temporaneo/" . $self->session->param("nom_projet") + . ".zip"; unlink $filename;
and
$self->generate_zip(); $self->download_zip(); return $self->redirect("http://delete.cgi");
What I was trying to do was following your advice: put the zip file in another directory and, if succeed, redirect to another run mode that erases the file, otherwise stay on the page and relaunch the download.

Replies are listed 'Best First'.
Re^3: cgi download and delete file
by teddyttas (Novice) on Aug 16, 2013 at 08:41 UTC
    Okay, I think I got the solution to my last question... it was simple. In fact I solved it in the following way...
    $self->generate_zip(); my $output = $self->download_zip(); #here I can do what I want. unlink and so on.. my $filename = "temporaneo/" . $self->session->param("nom_projet") + . ".zip"; unlink $filename; #and only then I stream the output return $output;
    I can now redirect to another runmode passing the $output variable and solve the problem as you suggested. thank you very much!