in reply to RE: Re: Downloading things from a database
in thread Downloading things from a database

What about very large files? As I see in my tests, this type of download use a lot of memory. Is there a was to do this without using a lot of system resources? Thanks
  • Comment on Re^3: Downloading things from a database

Replies are listed 'Best First'.
Re^4: Downloading things from a database
by upallnight (Sexton) on Jun 01, 2008 at 06:32 UTC
    Yes, this would take a lot of memory if you read in a large file to a string first.
    To force download of a large file, just print the file as you read it in like this:

    if(-e $file) { if(open(SESAME, "< $file")) { print "Content-Disposition: attachment; filename=$file\n"; print "Content-Type: application/octet-stream\n"; print "Content-Length: " . (-s $file) . "\n\n"; while(<SESAME>) { print $_; } close(SESAME); } else { print "Content-Type: text/html\n\nError: Could not read from f +ile\n"; } } else { print "Content-Type: text/html\n\nError: invalid filename\n"; }