Looking at the way CakeResponse::file() works, it does not appear it is 
possible to clean up a particular file in the same request that generated 
it, because the file is send when the body is actually generated, which is 
after afterFilter, and after all the Dispatch Filters would have fired.

Instead, I opted for a method where the method that downloads a file also 
cleans up temporary files that may be more than 5 minutes old.  The files 
that are getting downloaded are not that big, and the connections to the 
website are not expected to be slow, so there shouldn't be an issue of 
unlinking files that are in the middle of downloading.  And if it does take 
more than 5 minutes to download, bad luck.

Regards
Reuben Helms

On Friday, 25 October 2013 14:14:15 UTC+10, Reuben wrote:
>
> I have a function that extracts a file from an archive, and streams it to 
> the client via CakeResponse::file().
>
> As a part of extracting the file from the archive, I've had to put it in a 
> temporary file, and then pass that to CakeResponse::file().
>
> Once this is done, I'd like to clean up the temporary file, however, I'm 
> having trouble finding a good place to do it.
>
> Currently, I'm setting a property on the controller so that I can work out 
> what file I have to remove later.
>
> I've tried using afterFilter on the controller, but this seems to remove 
> the file before it starts getting streamed to the user.
>
> The next spot might be in a Dispatch filter, but I've got no idea where to 
> start, and if a dispatch filter has access to the controller.
>
> Any pointers, please?
>
> Regards
> Reuben Helms
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to