Skip to content

Commit 335e7a8

Browse files
committed
add 5.5 curl file
1 parent 141eabb commit 335e7a8

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

qiniu/io.php

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ function Qiniu_Put($upToken, $key, $body, $putExtra) // => ($putRet, $err)
3434
}
3535
if ($putExtra->Params) {
3636
foreach ($putExtra->Params as $k=>$v) {
37-
$fields[$k] = $v;
37+
$fields[$k] = $v;
3838
}
3939
}
4040

@@ -44,6 +44,23 @@ function Qiniu_Put($upToken, $key, $body, $putExtra) // => ($putRet, $err)
4444
return Qiniu_Client_CallWithMultipartForm($client, $QINIU_UP_HOST, $fields, $files);
4545
}
4646

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+
4764
function Qiniu_PutFile($upToken, $key, $localFile, $putExtra) // => ($putRet, $err)
4865
{
4966
global $QINIU_UP_HOST;
@@ -52,11 +69,7 @@ function Qiniu_PutFile($upToken, $key, $localFile, $putExtra) // => ($putRet, $e
5269
$putExtra = new Qiniu_PutExtra;
5370
}
5471

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));
6073
if ($key === null) {
6174
$fname = '?';
6275
} else {
@@ -73,7 +86,7 @@ function Qiniu_PutFile($upToken, $key, $localFile, $putExtra) // => ($putRet, $e
7386
}
7487
if ($putExtra->Params) {
7588
foreach ($putExtra->Params as $k=>$v) {
76-
$fields[$k] = $v;
89+
$fields[$k] = $v;
7790
}
7891
}
7992

0 commit comments

Comments
 (0)