# e2pdf/1.05.03/classes/controller/frontend/e2pdf-download.php

E2Pdf – Export Pdf Tool for WordPress, version 1.05.03. 138 lines.

- Page: https://pluginprobe.com/plugins/e2pdf/1.05.03/code/classes/controller/frontend/e2pdf-download.php
- Raw: https://pluginprobe.com/plugins/e2pdf/1.05.03/raw/classes/controller/frontend/e2pdf-download.php
- Modified: 2019-03-12T13:29:06+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/e2pdf/1.05.03/code/classes/controller/frontend/e2pdf-download.php#L10-L20`.

```php
<?php

/**
 * E2pdf Frontend Download Controller
 * 
 * @copyright  Copyright 2017 https://e2pdf.com
 * @license    GPL v2
 * @version    1
 * @link       https://e2pdf.com
 * @since      0.00.01
 */
if (!defined('ABSPATH')) {
    die('Access denied.');
}

class Controller_Frontend_E2pdf_Download extends Helper_E2pdf_View {

    /**
     * Frontend download action
     * 
     * @url page=e2pdf-download&uid=$uid
     */
    public function index_action() {
        global $wp_query;

        $download = false;
        $uid = $this->get->get('uid');

        $entry = new Model_E2pdf_Entry();

        if ($entry->load_by_uid($uid)) {

            $uid_params = $entry->get('entry');

            $template = new Model_E2pdf_Template();

            if (isset($uid_params['pdf'])) {
                if ($uid_params['pdf'] && file_exists($uid_params['pdf']) && isset($uid_params['template_id']) && isset($uid_params['dataset']) && $template->load($uid_params['template_id'])) {
                    $download = true;
                    $disposition = 'attachment';
                    if (isset($uid_params['inline'])) {
                        if ($uid_params['inline']) {
                            $disposition = 'inline';
                        }
                    } else {
                        if ($template->get('inline')) {
                            $disposition = 'inline';
                        }
                    }

                    $name = basename($uid_params['pdf'], ".pdf");
                    $file = base64_encode(file_get_contents($uid_params['pdf']));
                    $this->download_response('pdf', $file, $name, $disposition);
                }
            } elseif (isset($uid_params['template_id']) && isset($uid_params['dataset']) && $template->load($uid_params['template_id'])) {

                $template->extension()->set('dataset', $uid_params['dataset']);

                if (isset($uid_params['flatten'])) {
                    $template->set('flatten', $uid_params['flatten']);
                }

                if (isset($uid_params['format'])) {
                    $template->set('format', $uid_params['format']);
                }

                if (isset($uid_params['password'])) {
                    $template->set('password', $uid_params['password']);
                } else {
                    $template->set('password', $template->extension()->render($template->get('password'), 'value'));
                }

                if (isset($uid_params['name'])) {
                    $template->set('name', $uid_params['name']);
                } else {
                    $template->set('name', $template->extension()->render($template->get('name'), 'value'));
                }

                $disposition = 'attachment';
                if (isset($uid_params['inline'])) {
                    if ($uid_params['inline']) {
                        $disposition = 'inline';
                    }
                } else {
                    if ($template->get('inline')) {
                        $disposition = 'inline';
                    }
                }

                if (isset($uid_params['pdf']) && file_exists($uid_params['pdf'])) {

                    $entry->set('pdf_num', $entry->get('pdf_num') + 1);
                    $entry->save();

                    $download = true;

                    if ($template->get('name')) {
                        $name = $template->get('name');
                    } else {
                        $name = $template->extension()->render($template->get_filename(), 'value');
                    }
                    $file = base64_encode(file_get_contents($uid_params['pdf']));
                    $this->download_response('pdf', $file, $name, $disposition);
                } elseif ($template->extension()->verify()) {
                    $template->fill($uid_params['dataset'], $uid);
                    $request = $template->render();
                    if (isset($request['error'])) {
                        wp_die($request['error']);
                    } elseif ($request['file'] === '') {
                        wp_die(__('Something went wrong!', 'e2pdf'));
                    } else {
                        $entry->set('pdf_num', $entry->get('pdf_num') + 1);
                        $entry->save();

                        $download = true;

                        if ($template->get('name')) {
                            $name = $template->get('name');
                        } else {
                            $name = $template->extension()->render($template->get_filename(), 'value');
                        }

                        $file = $request['file'];
                        $this->download_response('pdf', $file, $name, $disposition);
                    }
                }
            }
        }

        if (!$download) {
            $wp_query->set_404();
            status_header(404);
            nocache_headers();
        }
    }

}

```
