diff options
Diffstat (limited to 'ext/curl/curl_file.c')
-rw-r--r-- | ext/curl/curl_file.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/ext/curl/curl_file.c b/ext/curl/curl_file.c index a81239a60a..a8f8a793b2 100644 --- a/ext/curl/curl_file.c +++ b/ext/curl/curl_file.c @@ -25,6 +25,7 @@ #include "curl_file_arginfo.h" PHP_CURL_API zend_class_entry *curl_CURLFile_class; +PHP_CURL_API zend_class_entry *curl_CURLStringFile_class; static void curlfile_ctor(INTERNAL_FUNCTION_PARAMETERS) { @@ -120,9 +121,34 @@ ZEND_METHOD(CURLFile, setPostFilename) } /* }}} */ +ZEND_METHOD(CURLStringFile, __construct) +{ + zend_string *data, *postname, *mime = NULL; + zval *object; + + object = ZEND_THIS; + + ZEND_PARSE_PARAMETERS_START(2,3) + Z_PARAM_STR(data) + Z_PARAM_STR(postname) + Z_PARAM_OPTIONAL + Z_PARAM_STR(mime) + ZEND_PARSE_PARAMETERS_END(); + + zend_update_property_str(curl_CURLStringFile_class, Z_OBJ_P(object), "data", sizeof("data") - 1, data); + zend_update_property_str(curl_CURLStringFile_class, Z_OBJ_P(object), "postname", sizeof("postname")-1, postname); + if (mime) { + zend_update_property_str(curl_CURLStringFile_class, Z_OBJ_P(object), "mime", sizeof("mime")-1, mime); + } else { + zend_update_property_string(curl_CURLStringFile_class, Z_OBJ_P(object), "mime", sizeof("mime")-1, "application/octet-stream"); + } +} + void curlfile_register_class(void) { curl_CURLFile_class = register_class_CURLFile(); curl_CURLFile_class->serialize = zend_class_serialize_deny; curl_CURLFile_class->unserialize = zend_class_unserialize_deny; + + curl_CURLStringFile_class = register_class_CURLStringFile(); } |