Coroutine\Http\Client->addFile

最后更新于:2022-04-02 06:27:25

# Coroutine\\Http\\Client->addFile [TOC] 添加POST文件。 ~~~ function Coroutine\Http\Client->addFile(string $path, string $name, string $mimeType = null, string $filename = null, int $offset = 0, int $length = 0) ~~~ * `$path`文件的路径,必选参数,不能为空文件或者不存在的文件 * `$name`表单的名称,必选参数,`FILES`参数中的`key` * `$mimeType`文件的MIME格式,可选参数,底层会根据文件的扩展名自动推断 * `$filename`文件名称,可选参数,默认为`basename($path)` * `$offset`上传文件的偏移量,可以指定从文件的中间部分开始传输数据。此特性可用于支持断点续传。 * `$length`发送数据的尺寸,默认为整个文件的尺寸 使用`addFile`会自动将POST的`Content-Type`将变更为`form-data`。`addFile`底层基于`sendfile`,可支持异步发送超大文件。 > `addFile`在`2.1.2`以上版本可用 ## 使用示例 ~~~ $cli = new Swoole\Coroutine\Http\Client('httpbin.org', 80); $cli->setHeaders([ 'Host' => "httpbin.org" ]); $cli->set(['timeout' => -1]); $cli->addFile(__FILE__, 'file1', 'text/plain'); $cli->post('/post', ['foo' => 'bar']); echo $cli->body; $cli->close(); ~~~
';