Server IP : 104.21.38.3 / Your IP : 172.70.208.169 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/wwwroot/coircraft.com/wp-content/plugins/caldera-forms/cf2/RestApi/File/ |
Upload File : |
<?php namespace calderawp\calderaforms\cf2\RestApi\File; use calderawp\calderaforms\cf2\Exception; use calderawp\calderaforms\cf2\Fields\FieldTypes\FileFieldType; use calderawp\calderaforms\cf2\Fields\Handlers\Cf1FileUploader; use calderawp\calderaforms\cf2\Fields\Handlers\FileUpload; use calderawp\calderaforms\cf2\Transients\Cf1TransientsApi; use calderawp\calderaforms\cf2\Fields\Handlers\UploaderContract; class CreateFile extends File { /** @inheritdoc */ protected function getArgs() { return [ 'methods' => 'POST', 'callback' => [$this, 'createItem'], 'permission_callback' => [$this, 'permissionsCallback' ], 'args' => [ 'hashes' => [ 'description' => __('MD5 has of files to upload, should have same order as files arg', 'caldera-forms') ], 'verify' => [ 'type' => 'string', 'description' => __('Verification token (nonce) for form', 'caldera-forms'), 'required' => true, ], 'formId' => [ 'type' => 'string', 'description' => __('ID for form field belongs to', 'caldera-forms'), 'required' => true, ], 'fieldId' => [ 'type' => 'string', 'description' => __('ID for field files are submitted to', 'caldera-forms'), 'required' => true, ], 'control' => [ 'type' => 'string', 'description' => __('Unique control string for field', 'caldera-forms'), 'required' => true, ] ] ]; } /** * Permissions check for file field uploads * * @since 1.8.0 * * @param \WP_REST_Request $request Request object * * @return bool */ public function permissionsCallback(\WP_REST_Request $request ){ $form = \Caldera_Forms_Forms::get_form( $request->get_param( 'formId' ) ); if( FileFieldType::getCf1Identifier() !== \Caldera_Forms_Field_Util::get_type( $request->get_param( 'fieldId' ), $form ) ){ return false; } return \Caldera_Forms_Render_Nonce::verify_nonce( $request->get_param( 'verify'), $request->get_param( 'formId' ) ); } /** * Upload file for cf2 file field * * @since 1.8.0 * * @param \WP_REST_Request $request * @return \WP_REST_Response */ /** * @param \WP_REST_Request $request * @return mixed|null|\WP_REST_Response * @throws \Exception */ public function createItem(\WP_REST_Request $request) { $files = $request->get_file_params(); if( isset( $files[ 'file'] ) ){ $files = [$files['file']]; } $formId = $request->get_param('formId'); $this->setFormById($formId); $fieldId = $request->get_param('fieldId'); $field = \Caldera_Forms_Field_Util::get_field($fieldId,$this->getForm()); $uploader = new Cf1FileUploader(); if( is_wp_error( $uploader ) ){ /** @var \WP_Error $uploader */ $e = Exception::fromWpError($uploader); return $e->toResponse(); } $hashes = $request->get_param( 'hashes'); $controlCode = $request->get_param( 'control' ); $transientApi = new Cf1TransientsApi(); $handler = new FileUpload( $field, $this->getForm(), new Cf1FileUploader() ); try{ if( is_string($hashes ) ){ $hashes = [$hashes]; } $uploads = $handler->processFiles($files,$hashes); $transdata = is_array( $transientApi->getTransient( $controlCode ) ) ? $transientApi->getTransient( $controlCode ) : []; $transientApi->setTransient( $controlCode, array_merge( $transdata, $uploads ), DAY_IN_SECONDS ); }catch( Exception $e ){ return $e->toResponse(); } if( is_wp_error( $controlCode ) ){ $e = Exception::fromWpError($controlCode); return $e->toResponse(); } $response = rest_ensure_response([ 'control' => $controlCode, ]); $response->set_status(201); return $response; } }