MDL-15991 - allow curl library to POST files by integrating with stored_file object.
This commit is contained in:
@@ -49,6 +49,16 @@ class stored_file {
|
||||
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
|
||||
|
||||
+10
-1
@@ -1635,7 +1635,16 @@ class curl {
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user