// Let's make sure the API key and username are set to match current config $xml = new SimpleXMLElement(file_get_contents($filename)); if (in_array($xml->variables->formname, $api_key_required)) { $rejected_due_to_acl = !$api_passed; $xml->variables->api_key = $Config['api_key']; } file_put_contents($filename, $xml->asXML()); if (isset($xml->variables->formname) && $xml->variables->formname == 'WX4AKQ_NCO_Report_Form' && $xml->variables->relayedvia == '6') { $rejected_due_to_hold = true; } $success = true; if (!$rejected_due_to_acl && !$rejected_due_to_hold) { $ch = curl_init(); if (class_exists('CurlFile')) { $uploadFile = new CurlFile($filename, mime_content_type($filename), $filename); $uploadFile->setPostFilename(basename($filename)); } else { if (!function_exists('curl_file_create')) { function curl_file_create($filename, $mimetype = '', $postname = '') { return "@{$filename};filename=" . ($postname ?: basename($filename)) . ($mimetype ? ";type={$mimetype}" : ''); } } $uploadFile = curl_file_create($filename, mime_content_type($filename), $filename); } $data = array('attachment[]' => $uploadFile, 'output' => 'xml'); $opt_array = array(CURLOPT_URL => $Config['upload_url'], CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $data); curl_setopt_array($ch, $opt_array); $result = curl_exec($ch); curl_close($ch); $xml = simplexml_load_string($result);
protected static function upload($path, $file, $body, $options, $method = 'POST') { $client = new CurlClient(); $c_file = new \CurlFile($file, null, $method == 'POST' ? 'source_video' : 'custom_poster_frame'); $c_file->setPostFilename(basename($file)); if (is_null($body)) { $body = array(); } array_push($body, $c_file); $response = $client->upload($path, $body, $options, $method); return $response; }
/** * @param string $filePath * @param string $filename * @param null|string $typeId used for internal unistorage statistics * * @return File */ public function uploadFile($filePath, $filename = '', $typeId = null) { if (empty($filename)) { $filename = pathinfo($filePath, PATHINFO_BASENAME); } if (class_exists('\\CurlFile', false)) { // PHP >= 5.5 $file = new \CurlFile($filePath); $file->setPostFilename($filename); } else { // PHP < 5.5 $file = "@{$filePath};filename={$filename}"; } $fields = array('file' => $file); if (!is_null($typeId)) { $fields += array('type_id' => $typeId); } $answer = $this->sendRequest('/', $fields, 'post'); return $this->getFile($answer['resource_uri']); }