Файловый менеджер - Редактировать - /home/goldin10/public_html/getoutyourbox.com/wp-content/plugins/caldera-forms/cf2/Fields/Handlers/FileUpload.php
Error occurred
Назад
<?php namespace calderawp\calderaforms\cf2\Fields\Handlers; use calderawp\calderaforms\cf2\Exception; use calderawp\calderaforms\cf2\Fields\FieldTypes\FileFieldType; use calderawp\calderaforms\cf2\Transients\TransientApiContract; class FileUpload { /** * Field config * * @since 1.8.0 * * @var array */ protected $field; /** * Form config * * @since 1.8.0 * * @var array */ protected $form; /** * Upload handler * * @since 1.8.0 * * @var UploaderContract */ protected $uploader; /** * FileUpload constructor. * * @since 1.8.0 * * @param array $field Field config * @param array $form Form config * @param UploaderContract $uploader Upload handler to use */ public function __construct(array $field, array $form, UploaderContract $uploader) { $this->field = $field; $this->form = $form; $this->uploader = $uploader; } /** * Process file upload * * @since 1.8.0 * * @param array $files Files to process * @param array $hashes Supplied file hashes to compare actual hashes against * * @return array * @throws \Exception */ public function processFiles(array $files, array $hashes) { $uploads = []; $i = 0; foreach ( $files as $file ) { if ( !$this->isAllowedType($file) ) { throw new Exception(__('A file type is not allowed. Please try another.', 'caldera-forms'), 415); } if( $this->isFileTooLarge($file)){ throw new Exception(__('A file is too large. Please try another.', 'caldera-forms'), 415); } $hashFromRequest = $hashes[ $i ]; $actualHash = md5_file($file[ 'tmp_name' ]); if ( !hash_equals($actualHash, $hashFromRequest) ) { throw new Exception(__('Content hash did not match expected.'), 412); } $isPrivate = \Caldera_Forms_Files::is_private($this->field); $this->uploader ->addFilter( $this->field[ 'ID' ], $this->form[ 'ID' ], $isPrivate, $actualHash ); require_once(ABSPATH . 'wp-admin/includes/file.php'); $upload = wp_handle_upload($file, [ 'test_form' => false, 'action' => 'foo' ]); $this->uploader->removeFilter(); if ( \Caldera_Forms_Files::should_add_to_media_library($this->field) ) { \Caldera_Forms_Files::add_to_media_library($upload, $this->field); } if ( $isPrivate ) { $this->uploader->scheduleFileDelete( $this->field[ 'ID' ], $this->form[ 'ID' ], $upload[ 'file' ] ); } $uploads[] = $upload[ 'url' ]; $i++; } return $uploads; } /** * Check if file type if allowed for this field * * @since 1.8.0 * * @param $file * * @return bool * @throws Exception */ public function isAllowedType($file) { if ( empty($this->field[ 'config' ][ 'allowed' ]) ) { return true; } $fileName = !empty($file[ 'name' ]) ? $file[ 'name' ] : basename($file[ 'tmp_name' ]); $filetype = wp_check_filetype(basename($fileName), null); return in_array(strtolower($filetype[ 'ext' ]), $this->getAllowedTypes()); } /** * Check if file is too large * * @since 1.8.0 * * @param $file * * @return bool */ public function isFileTooLarge($file) { return $this->uploader->isFileTooLarge($this->field, $file); } /** * Get allowed file types for file field * * @since 1.8.0 * * @return array */ public function getAllowedTypes() { $types = !empty($this->field[ 'config' ][ 'allowed' ]) ? $this->field[ 'config' ][ 'allowed' ] : []; if ( !is_array($types) ) { $types = explode(',', $types); } if ( in_array('jpg', $types) && !in_array('jpeg', $types) ) { $types[] = 'jpeg'; } return $types; } }
| ver. 1.4 |
Github
|
.
| PHP 7.2.34 | Генерация страницы: 0.06 |
proxy
|
phpinfo
|
Настройка