当我在body
的{{1}}参数的$option
元素中传递资源引用时,Guzzle 5.3.0将资源类型createRequest
转换为stream
}。这会使资源无法使用,并导致Guzzle内部出现异常。
e.g。
unknown
在$fp = fopen('path/to/a/file.txt');
$request = $client->createRequest('POST', $someUrl, ['body' => $fp]);
之前createRequest
的类型为$fp
。但在该行之后,stream
的类型为$fp
。
Guzzle在发送请求之前在内部将流转换为unknown
,但不知怎的,它每次都会被破坏。
调用GuzzleHttp\Stream
时会导致异常fstat(): 501 is not a valid stream resource
。
可能导致这种情况的原因以及如何解决这个问题?
答案 0 :(得分:0)
您可以使用Stream
对象创建请求。
首先添加Stream类
use GuzzleHttp\Stream\Stream;
从文件创建流对象并将其用于创建请求。
$stream = Stream::factory(fopen('path/to/a/file.txt'));
$request = $client->createRequest('POST', $someUrl, ['body' => $stream ]);