或者PHP不允许这样做吗?我已经读过可以使用PUT,但服务器只能使用POST。
答案 0 :(得分:4)
Curl已经支持该流,请尝试curl --help | grep binary
,您将获得:
" - 数据二进制数据HTTP HTTP POST二进制数据(H)"
一个例子:
curl -v -XPOST http://example:port/path --data-binary @file.tar \
-H "Content-Type: application/octet-stream"
答案 1 :(得分:2)
是的,可以使用带有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方法流上传文件。