Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不使用PHP将文件写入磁盘的情况下将文件发布到REST服务器?_Php_Rest_Curl - Fatal编程技术网

如何在不使用PHP将文件写入磁盘的情况下将文件发布到REST服务器?

如何在不使用PHP将文件写入磁盘的情况下将文件发布到REST服务器?,php,rest,curl,Php,Rest,Curl,我正在尝试将XML文件发送到服务器,作为内部API的POST方法的一部分 所有PHP文档都指向使用$postVars['file']='@/path/to/file.xml'实际发送文件 我想从字符串发送文件,但它仍然需要作为文件上传发送,而不是字符串 帮助?并且可能会有帮助。看看这个线程,它处理您想要做的事情。我认为: 最后一个条目可能有帮助(由我重新格式化): 基本上,解决方案是利用内置的php流处理URL。非常好。我将研究这个解决方案。 function do_post_request($

我正在尝试将XML文件发送到服务器,作为内部API的POST方法的一部分

所有PHP文档都指向使用$postVars['file']='@/path/to/file.xml'实际发送文件

我想从字符串发送文件,但它仍然需要作为文件上传发送,而不是字符串


帮助?

并且可能会有帮助。

看看这个线程,它处理您想要做的事情。我认为:

最后一个条目可能有帮助(由我重新格式化):


基本上,解决方案是利用内置的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; 
}