PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 3.3.1
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v3.3.1
3.3.1 V-3.3.0 3.2.2 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 V3.0.3 V3.0.2 -3.0.1 V_3.0.0 1.1.1 1.1.8 1.2 1.3 1.4 1.4.18 1.5.2 1.9 2.0 2.10.0 2.10.1 All 138 releases
← All changes | includes/Core/Integration/ZohoMail/FilesApiHelper.php +19 -1 2.10.03.3.1 View file →
@@ -6,8 +6,9 @@
6 6 */
7 7
8 8 namespace BitCode\BitForm\Core\Integration\ZohoMail;
9 9
10 +use BitCode\BitForm\Core\Util\FileHandler;
10 11 use BitCode\BitForm\Core\Util\HttpHelper;
11 12
12 13 /**
13 14 * Provide functionality for Upload files
@@ -22,13 +23,14 @@
22 23 {
23 24 $this->_payloadBoundary = wp_generate_password(24);
24 25 $this->_defaultHeader['Authorization'] = "Zoho-oauthtoken {$tokenDetails->access_token}";
25 26 $this->_defaultHeader['Content-Type'] = 'application/octet-stream; boundary=' . $this->_payloadBoundary;
26 - $this->_basepath = BITFORMS_UPLOAD_DIR . DIRECTORY_SEPARATOR . $formID . DIRECTORY_SEPARATOR . $entryID . DIRECTORY_SEPARATOR;
27 + $this->_basepath = FileHandler::getEntriesFileUploadDir($formID, $entryID) . DIRECTORY_SEPARATOR;
27 28 }
28 29
29 30 public function uploadFiles($files, $accountId, $dataCenter)
30 31 {
32 + $files = self::normalizeFileNames($files);
31 33 $uploadFileEndpoint = "https://mail.zoho.{$dataCenter}/api/accounts/{$accountId}/messages/attachments";
32 34
33 35 $payload = '';
34 36
@@ -46,6 +48,22 @@
46 48 $uploadResponse = HttpHelper::post($uploadFileEndpoint, $payload, $this->_defaultHeader);
47 49
48 50 return $uploadResponse;
49 51 }
52 + }
53 +
54 + /**
55 + * Field values may arrive as public file URLs (see IntegrationHandler::handleFileUrl),
56 + * so reduce each to the stored file name before resolving against the entry directory.
57 + *
58 + * @param mixed $files file name(s) or URL(s)
59 + *
60 + * @return mixed
61 + */
62 + private static function normalizeFileNames($files)
63 + {
64 + if (is_array($files)) {
65 + return array_map([__CLASS__, 'normalizeFileNames'], $files);
66 + }
67 + return is_string($files) ? basename(wp_parse_url($files, PHP_URL_PATH) ?: $files) : $files;
50 68 }
51 69 }