如何在不使用PHP将文件写入磁盘的情况下将文件发布到REST服务器?
我正在尝试将XML文件发送到服务器,作为内部API的POST方法的一部分 所有PHP文档都指向使用$postVars['file']='@/path/to/file.xml'实际发送文件 我想从字符串发送文件,但它仍然需要作为文件上传发送,而不是字符串如何在不使用PHP将文件写入磁盘的情况下将文件发布到REST服务器?,php,rest,curl,Php,Rest,Curl,我正在尝试将XML文件发送到服务器,作为内部API的POST方法的一部分 所有PHP文档都指向使用$postVars['file']='@/path/to/file.xml'实际发送文件 我想从字符串发送文件,但它仍然需要作为文件上传发送,而不是字符串 帮助?并且可能会有帮助。看看这个线程,它处理您想要做的事情。我认为: 最后一个条目可能有帮助(由我重新格式化): 基本上,解决方案是利用内置的php流处理URL。非常好。我将研究这个解决方案。 function do_post_request($
帮助?并且可能会有帮助。看看这个线程,它处理您想要做的事情。我认为: 最后一个条目可能有帮助(由我重新格式化):
基本上,解决方案是利用内置的php流处理URL。非常好。我将研究这个解决方案。
function do_post_request($url, $data, $optional_headers = null) {
$params = array('http' => array(
'method' => 'post',
'content' => $data
));
if ($optional_headers!== null)
$params['http']['header'] = $optional_headers;
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp)
throw new Exception("Problem with $url, $php_errormsg");
$response = @stream_get_contents($fp);
if ($response === false)
throw new Exception("Problem reading data from $url, $php_errormsg");
return $response;
}