| @@ -3,9 +3,9 @@ | ||
| 3 | 3 | /** |
| 4 | 4 | * E2pdf Files Helper |
| 5 | 5 | * |
| 6 | 6 | * @copyright Copyright 2017 https://e2pdf.com |
| 7 | - * @license GPL v2 | |
| 7 | + * @license GPLv3 | |
| 8 | 8 | * @version 1 |
| 9 | 9 | * @link https://e2pdf.com |
| 10 | 10 | * @since 0.00.01 |
| 11 | 11 | */ |
| @@ -15,24 +15,17 @@ | ||
| 15 | 15 | |
| 16 | 16 | class Helper_E2pdf_Files { |
| 17 | 17 | |
| 18 | 18 | private $files = array(); |
| 19 | + private $helper; | |
| 19 | 20 | |
| 20 | - /** | |
| 21 | - * On init | |
| 22 | - * Assign $_FILES array to $files | |
| 23 | - */ | |
| 21 | + // construct | |
| 24 | 22 | public function __construct() { |
| 23 | + $this->helper = Helper_E2pdf_Helper::instance(); | |
| 25 | 24 | $this->files = $_FILES; |
| 26 | 25 | } |
| 27 | 26 | |
| 28 | - /** | |
| 29 | - * Get value from $_FILES | |
| 30 | - * | |
| 31 | - * @param string $key - Array key | |
| 32 | - * | |
| 33 | - * @return mixed | |
| 34 | - */ | |
| 27 | + // get | |
| 35 | 28 | public function get($key) { |
| 36 | 29 | |
| 37 | 30 | if (!$key) { |
| 38 | 31 | if (!empty($this->files)) { |
| @@ -49,5 +42,52 @@ | ||
| 49 | 42 | } |
| 50 | 43 | } |
| 51 | 44 | } |
| 52 | 45 | |
| 46 | + // get upload max filesize | |
| 47 | + public function get_upload_max_filesize() { | |
| 48 | + $max_size = -1; | |
| 49 | + if ($max_size < 0) { | |
| 50 | + $post_max_size = $this->helper->load('convert')->to_bytes(ini_get('post_max_size')); | |
| 51 | + if ($post_max_size > 0) { | |
| 52 | + $max_size = $post_max_size; | |
| 53 | + } | |
| 54 | + | |
| 55 | + $upload_max = $this->helper->load('convert')->to_bytes(ini_get('upload_max_filesize')); | |
| 56 | + if ($upload_max > 0 && $upload_max < $max_size) { | |
| 57 | + $max_size = $upload_max; | |
| 58 | + } | |
| 59 | + } | |
| 60 | + return $this->helper->load('convert')->from_bytes($max_size); | |
| 61 | + } | |
| 62 | + | |
| 63 | + // upload | |
| 64 | + public function upload($file, $exts = [], $mimes = []) { | |
| 65 | + $upload = [ | |
| 66 | + 'name' => $file['name'], | |
| 67 | + 'tmp_name' => $file['tmp_name'], | |
| 68 | + 'type' => $file['type'], | |
| 69 | + 'ext' => strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)), | |
| 70 | + ]; | |
| 71 | + if (empty($file['tmp_name']) || !is_uploaded_file($file['tmp_name'])) { | |
| 72 | + $upload['error'] = __('Choose file to upload', 'e2pdf'); | |
| 73 | + } elseif (!empty($file['error'])) { | |
| 74 | + $upload['error'] = $file['error']; | |
| 75 | + } elseif (!is_readable($file['tmp_name'])) { | |
| 76 | + $upload['error'] = __('TMP file is not readable', 'e2pdf'); | |
| 77 | + } elseif (!empty($exts) && !in_array($upload['ext'], $exts)) { | |
| 78 | + $upload['error'] = sprintf(__('Only %s files allowed', 'e2pdf'), '.' . implode(', .', $exts)); | |
| 79 | + } elseif (!empty($mimes) && function_exists('finfo_open') && function_exists('finfo_file') && defined('FILEINFO_MIME_TYPE')) { | |
| 80 | + $finfo = finfo_open(FILEINFO_MIME_TYPE); | |
| 81 | + if ($finfo !== false) { | |
| 82 | + $mime = @finfo_file($finfo, $file['tmp_name']); | |
| 83 | + finfo_close($finfo); | |
| 84 | + if ($mime && !in_array($mime, $mimes)) { | |
| 85 | + $upload['error'] = __('Invalid Type', 'e2pdf'); | |
| 86 | + } | |
| 87 | + } | |
| 88 | + } elseif (!empty($mimes) && !in_array($upload['type'], $mimes)) { | |
| 89 | + $upload['error'] = __('Invalid Type', 'e2pdf'); | |
| 90 | + } | |
| 91 | + return $upload; | |
| 92 | + } | |
| 53 | 93 | } |