Skip to content

koorchik/Mojolicious-Plugin-RenderFile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

Mojolicious::Plugin::RenderFile - "render_file" helper for Mojolicious

SYNOPSIS

# 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"
    'cleanup'  => 1,                     # delete file after completed
);

DESCRIPTION

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.

HELPERS

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.

Supported Options:

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 (optional)

Browser will use this name for saving the file

format (optional)

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"

You cannot pass both the "format" and the "content_type" option, as they are mutually exclusive.

content_type (optional)

With this option, the "Content-Type" can be set directly.

By default "Content-Type" header is "application/x-download"

You cannot pass both the "format" and the "content_type" option, as they are mutually exclusive.

content_disposition (optional)

Tells browser how to present the file.

"attachment" (default) - is for dowloading

"inline" - is for showing file inline

cleanup (optional)

Indicates if the file should be deleted when rendering is complete

This plugin respects HTTP Range headers.

AUTHOR

Viktor Turskyi <koorchik@cpan.org>

CONTRIBUTORS

Nils Diewald (Akron)

BUGS

Please report any bugs or feature requests to Github https://github.com/koorchik/Mojolicious-Plugin-RenderFile

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicio.us.

Copyright 2011 Viktor Turskyi

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

About

"render_file" helper for Mojolicious to render static files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages