9

还是 PHP 不允许这样做?我已经读过使用 PUT 是可能的,但服务器只需要 POST。

4

2 回答 2

5

cURL 已经支持流,尝试一下curl --help | grep binary,你会得到:

--data-binary DATA HTTP POST 二进制数据 (H)

一个例子:

curl -v -XPOST http://example:port/path --data-binary @file.tar
-H "Content-Type: application/octet-stream"

于 2015-06-26T02:12:41.830 回答
3

是的,可以使用带有 cURL 的 POST 文件上传来流式上传文件。这是默认设置,您需要提供要以字符串形式流式传输的文件的文件名。

// URL on which we have to post data
$url = "http://localhost/tutorials/post_action.php";
// Any other field you might want to catch
$post_data['name'] = "khan";
// File you want to upload/post
$post_data['file'] = "@c:/logs.log";

// Initialize cURL
$ch = curl_init();
// Set URL on which you want to post the Form and/or data
curl_setopt($ch, CURLOPT_URL, $url);
// Data+Files to be posted
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
// Pass TRUE or 1 if you want to wait for and catch the response against the request made
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// For Debug mode; shows up any error encountered during the operation
curl_setopt($ch, CURLOPT_VERBOSE, 1);
// Execute the request
$response = curl_exec($ch);

// Just for debug: to see response
echo $response;

除了该默认方法外,不能使用 cURL 使用 POST 方法流式上传文件。

于 2013-04-12T18:36:48.337 回答