@@ -34,7 +34,7 @@ function Qiniu_Put($upToken, $key, $body, $putExtra) // => ($putRet, $err)
34
34
}
35
35
if ($ putExtra ->Params ) {
36
36
foreach ($ putExtra ->Params as $ k =>$ v ) {
37
- $ fields [$ k ] = $ v ;
37
+ $ fields [$ k ] = $ v ;
38
38
}
39
39
}
40
40
@@ -44,6 +44,23 @@ function Qiniu_Put($upToken, $key, $body, $putExtra) // => ($putRet, $err)
44
44
return Qiniu_Client_CallWithMultipartForm ($ client , $ QINIU_UP_HOST , $ fields , $ files );
45
45
}
46
46
47
+ function createFile ($ filename , $ mime )
48
+ {
49
+ // PHP 5.5 introduced a CurlFile object that deprecates the old @filename syntax
50
+ // See: https://wiki.php.net/rfc/curl-file-upload
51
+ if (function_exists ('curl_file_create ' )) {
52
+ return curl_file_create ($ filename , $ mime );
53
+ }
54
+
55
+ // Use the old style if using an older version of PHP
56
+ $ value = "@ {$ filename }" ;
57
+ if (!empty ($ mime )) {
58
+ $ value .= ';type= ' . $ mime ;
59
+ }
60
+
61
+ return $ value ;
62
+ }
63
+
47
64
function Qiniu_PutFile ($ upToken , $ key , $ localFile , $ putExtra ) // => ($putRet, $err)
48
65
{
49
66
global $ QINIU_UP_HOST ;
@@ -52,11 +69,7 @@ function Qiniu_PutFile($upToken, $key, $localFile, $putExtra) // => ($putRet, $e
52
69
$ putExtra = new Qiniu_PutExtra ;
53
70
}
54
71
55
- if (!empty ($ putExtra ->MimeType )) {
56
- $ localFile .= ';type= ' . $ putExtra ->MimeType ;
57
- }
58
-
59
- $ fields = array ('token ' => $ upToken , 'file ' => '@ ' . $ localFile );
72
+ $ fields = array ('token ' => $ upToken , 'file ' => createFile ($ localFile , $ putExtra ->MimeType ));
60
73
if ($ key === null ) {
61
74
$ fname = '? ' ;
62
75
} else {
@@ -73,7 +86,7 @@ function Qiniu_PutFile($upToken, $key, $localFile, $putExtra) // => ($putRet, $e
73
86
}
74
87
if ($ putExtra ->Params ) {
75
88
foreach ($ putExtra ->Params as $ k =>$ v ) {
76
- $ fields [$ k ] = $ v ;
89
+ $ fields [$ k ] = $ v ;
77
90
}
78
91
}
79
92
0 commit comments