我已经使用流编写了一些代码,这些流通过多种形式的帖子将文件发送到另一个网站。所以这是 php 服务器代码到 -> 另一个 web 服务器。我目前不能使用“curl”,我被限制在流中。
我的担忧(下面的评论,这里的关注)是如果我遇到一个非常大的文件,它可能会耗尽 php Web 服务器上的内存。
当使用指向 url(rest api 端点)的 php 流时,有没有办法使用 PHP 流直接写入请求流?现在在所有东西放在一起之后,它会发出一个
文件获取内容(...)
所以这里是创建和发送文件的代码片段。
private function getOptionsForMulitPartFile($request, $cred, $file)
{
$mimeType = $this->getMimeType($file);
$contentType = 'Content-Type: multipart/form-data; boundary=' . MULTIPART_BOUNDARY;
$contentLength = "Content-Length: " . filesize($file->getFilePathAndName());
$file_contents = $file->readWholeFile(); //<----Concern here, that file maybe too large.
$data = "--" . MULTIPART_BOUNDARY . "\r\n" .
"Content-Disposition: form-data; name=\"".FORM_FIELD."\"; filename=\"" . basename($file->getFilePathAndName()) . "\"\r\n" .
"Content-Type: " . $mimeType . "\r\n\r\n" . $file_contents."\r\n";
$data .= "--". MULTIPART_BOUNDARY . "--\r\n";
// set up the request context
return $this->createOption($request, $cred, $data, $contentType, $contentLength);
}