---
name: "Mojolicious::Plugin::RenderFile"
section: "3pm"
platform: "linux"
package: "libmojolicious-plugin-renderfile-perl"
version: "0.12-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mojolicious::Plugin::RenderFile"
---

# Mojolicious::Plugin::RenderFile(3pm)

"render\_file" helper for Mojolicious

## 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 transferred 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"

- "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) Danil Greben (SDSWanderer)

## 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.
