Mojolicious::Plugin::RenderFile - "render_file" helper for Mojolicious
# Mojolicious $self->plugin('RenderFile'); # Mojolicious::Lite plugin 'RenderFile'; # In controller $self->render_file('filepath' => '/tmp/files/file.pdf'); # file name will be "file.pdf" # Provide any file name $self->render_file('filepath' => '/tmp/files/file.pdf', 'filename' => 'report.pdf'); # Render data from memory as file $self->render_file('data' => 'some data here', 'filename' => 'report.pdf'); # Open file in browser(do not show save dialog) $self->render_file( 'filepath' => '/tmp/files/file.pdf', 'format' => 'pdf', # will change Content-Type "application/x-download" to "application/pdf" 'content_disposition' => 'inline', # will change Content-Disposition from "attachment" to "inline" );
Mojolicious::Plugin::RenderFile is a Mojolicious plugin that adds "render_file" helper. It does not read file in memory and just streaming it to a client.
render_file
$self->render_file(filepath => '/tmp/files/file.pdf', 'filename' => 'report.pdf' );
With this helper you can easily provide files for download. By default "Content-Type" header is "application/x-download" and "content_disposition" option value is "attachment". Therefore, a browser will ask where to save file. You can provide "format" option to change "Content-Type" header.
filepath
Path on the filesystem to the file. You must always pass "filepath" or "data" option
data
Binary content which will be transfered to browser. You must always pass "filepath" or "data" option
filename
Browser will use this name for saving the file
format
The "Content-Type" header is based on the MIME type mapping of the "format" option value. These mappings can be easily extended or changed with "types" in Mojolicious.
By default "Content-Type" header is "application/x-download"
content_disposition
Tells browser how to present the file.
"attachment" (default) - is for dowloading
"inline" - is for showing file inline
This plugin respects HTTP Range headers.
Viktor Turskyi <koorchik@cpan.org>
Nils Diewald (Akron)
Please report any bugs or feature requests to Github https://github.com/koorchik/Mojolicious-Plugin-RenderFile
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
To install Mojolicious::Plugin::RenderFile, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious::Plugin::RenderFile
CPAN shell
perl -MCPAN -e shell install Mojolicious::Plugin::RenderFile
For more information on module installation, please visit the detailed CPAN module installation guide.