iliaa Thu Nov 27 17:03:22 2008 UTC
Modified files:
/php-src/ext/curl interface.c
Log:
MFB: Fixed bug #46696 (cURL fails in upload files with specified
content-type)
http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.133&r2=1.134&diff_format=u
Index: php-src/ext/curl/interface.c
diff -u php-src/ext/curl/interface.c:1.133 php-src/ext/curl/interface.c:1.134
--- php-src/ext/curl/interface.c:1.133 Sat Nov 22 14:41:21 2008
+++ php-src/ext/curl/interface.c Thu Nov 27 17:03:22 2008
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: interface.c,v 1.133 2008/11/22 14:41:21 felipe Exp $ */
+/* $Id: interface.c,v 1.134 2008/11/27 17:03:22 iliaa Exp $ */
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
@@ -1639,17 +1639,37 @@
* must be explicitly cast to long in
curl_formadd
* use since curl needs a long not an
int. */
if (*postval == '@') {
+ char *type;
++postval;
+
+ if ((type =
php_memnstr(postval, ";type=", sizeof(";type=") - 1, postval +
strlen(postval)))) {
+ *type = '\0';
+ }
/* open_basedir check */
if
(php_check_open_basedir(postval TSRMLS_CC)) {
+ if (type) {
+ *type = ';';
+ }
RETVAL_FALSE;
return 1;
}
- error = curl_formadd(&first,
&last,
+ if (type) {
+ type++;
+ error =
curl_formadd(&first, &last,
CURLFORM_COPYNAME, key,
CURLFORM_NAMELENGTH, l,
-
CURLFORM_FILE, postval,
+
CURLFORM_FILE, postval,
+
CURLFORM_CONTENTTYPE, type,
CURLFORM_END);
+ *(type - 1) = ';';
+ } else {
+ error =
curl_formadd(&first, &last,
+
CURLFORM_COPYNAME, key,
+
CURLFORM_NAMELENGTH, l,
+
CURLFORM_FILE, postval,
+
CURLFORM_END);
+
+ }
} else {
error = curl_formadd(&first,
&last,
CURLFORM_COPYNAME, key,-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
