return "$filedir/$l1/$l2/$l3/$contenthash";
}
+ /**
+ * adds this file path to a curl request (POST only)
+ *
+ * @param curl $curlrequest the curl request object
+ * @param string $key what key to use in the POST request
+ */
+ public function add_to_curl_request(&$curlrequest, $key) {
+ $curlrequest->_tmp_file_post_params[$key] = '@' . $this->get_content_file_location();
+ }
+
/**
* Returns file handle - read only mode, no writing allowed into pool files!
* @return file handle
*/
public function post($url, $params = array(), $options = array()){
$options['CURLOPT_POST'] = 1;
- $options['CURLOPT_POSTFIELDS'] = $params;
+ $this->_tmp_file_post_params = array();
+ foreach ($params as $key => $value) {
+ if ($value instanceof stored_file) {
+ $value->add_to_curl_request($this, $key);
+ } else {
+ $this->_tmp_file_post_params[$key] = $value;
+ }
+ }
+ $options['CURLOPT_POSTFIELDS'] = $this->_tmp_file_post_params;
+ unset($this->_tmp_file_post_params);
return $this->request($url, $options);
}