CGI-Easy-SendFile
view release on metacpan or search on metacpan
NAME
CGI::Easy::SendFile - send files from CGI to browser
VERSION
This document describes CGI::Easy::SendFile version v2.0.1
SYNOPSIS
use CGI::Easy::SendFile qw( send_file );
my $r = CGI::Easy::Request->new();
my $h = CGI::Easy::Headers->new();
my $data = send_file($r, $h, '/path/file.zip');
print $h->compose();
print ${$data};
# -- send "file" generated in memory instead of real file
my $dynamic_file = 'â¦some binary dataâ¦';
my $data = send_file($r, $h, \$dynamic_file);
# -- simulate static image served by web server
# (without "download file" dialog popup in browser)
my $data = send_file($r, $h, 'avatar.png', {
type => 'image/png',
cache => 1,
inline => 1,
});
DESCRIPTION
This module provide single function, which helps you prepare CGI reply
for sending file to browser.
EXPORTS
Nothing by default, but all documented functions can be explicitly
imported.
INTERFACE
send_file
$data = send_file( $r, $h, '/path/file.zip' );
$data = send_file( $r, $h, '/path/file.zip', \%opt );
$data = send_file( $r, $h, \$dynamic_file );
$data = send_file( $r, $h, \$dynamic_file, \%opt );
Prepare HTTP headers and content for CGI reply to send file.
$r CGI::Easy::Request object
$h CGI::Easy::Headers object
$file STRING (file name) or SCALARREF (file contents)
%opt
{type} STRING (default "application/x-download")
{range} BOOL (default TRUE if $file is STRING,
FALSE if $file is SCALARREF)
{cache} BOOL (default FALSE)
{inline} BOOL (default FALSE)
{type}
Custom value for 'Content-Type' header. These are equivalents:
$data = send_file($r, $h, $file, {type=>'image/png'});
$data = send_file($r, $h, $file);
$h->{'Content-Type'} = 'image/png';
{range}
Enable/disable support for sending partial file contents, if
requested (this is usually used by file downloader applications to
fetch files faster using several simultaneous connections to download
different file parts). You shouldn't enable this option for dynamic
files generated by your CGI if contents of these files may differ for
different CGI requests sent by same user to same url.
If your web server configured to gzip CGI replies, it will disable
this feature. To make this feature working disable gzip in web server
(usually by adding SetEnv no-gzip in .htaccess file).
When enabled and user requested partial contents will change 'Status'
( run in 1.278 second using v1.01-cache-2.11-cpan-364913b4093 )